使用 class 时使用 Babel 和 JSX 的语法错误

SyntaxError using Babel and JSX when using class

我正在尝试使用 webpack、babel 和 jsx 创建 类

import Observable from '../../observable';


abstract class AbstractClient implements Observable  {
    var _name: string,
    var _config: object,

    function constructor(config: object) : variant,

    ...
}
export default AbstractClient;

这是我得到的错误:

ERROR in ./app/adapter/AbstractAdapter/aclient.jsx
Module build failed: SyntaxError: /home/vinz243/Documents/nTorrent/app/adapter/AbstractAdapter/aclient.jsx: Unexpected token (5:9)
  3 | 
  4 | 
> 5 | abstract class AbstractClient implements Observable  {
    |          ^
  6 |   var _name: string,
  7 |   var _config: object,
  8 | 

我的 babel 预设

 presets:['es2015','stage-0','react']

ES2015 中不支持抽象 classes 的语法,这就是您收到意外标记错误的原因。 abstract 也不是 es2015 中的关键字,因此解释器可能将 abstract 解释为变量名。

在Javascript中有实现抽象class模式的方法。