如何与宗地捆绑包一起使用类字段?

时间:2019-12-16 22:27:41

标签: javascript es6-class parceljs

使用公共ES6类字段声明时收到错误“ Missing class properties transform.”。如何修改我的包裹设置以允许这样做?

当前代码

index.html

<body>
  <div id="greeting"></div>
  <script src="./app.js"></script>
</body>

app.js

class Greeter {
  greeting = 'Hello';

  constructor(container, name) {
    container.innerText = `${this.greeting} ${name}`;
  }
}

new Greeter(document.querySelector('#greeting'), 'Justin');

解决方法

只有删除greeting = 'Hello';声明,我才能使它起作用:

class Greeter {

  constructor(container, name) {
    this.greeting = 'Hello';
    container.innerText = `${this.greeting} ${name}`;
  }
}

new Greeter(document.querySelector('#greeting'), 'Justin');

1 个答案:

答案 0 :(得分:1)

在文件.babelrc中添加以下内容:

{
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

有关更多详细信息,请参见@babel/plugin-proposal-class-properties。您还应该能够使用public,static和新的private fields