语法错误:unknown:在严格模式下,“interface”是一个保留字。

8
如果在一个React组件文件中,我为状态定义一个接口:
```html

如果在一个React组件文件中,我为状态定义一个接口:

```
interface IState {
}

当我尝试使用babel.transform编译它时,我遇到了错误:

SyntaxError: unknown: interface is a reserved word in strict mode

这是预期行为吗?我该如何让它编译通过?

我正在使用:

"babel-cli": "^7.0.0-beta.3",
"babel-preset-es2015": "^7.0.0-beta.3",
"babel-preset-typescript": "^7.0.0-beta.3",

在Mac OSX 10.11.6上。

请问您能否提供一些关于您是如何编译它的更多信息? - Vipin Kumar
你能展示一下你的 .babelrctslint.json 文件吗? - Ulrich Dohou
你不应该在变量/类型/接口前加上I前缀,这是一种不好的做法。只需称其为State而不带I。这样,如果需要的话,你可以稍后将其更改为type,而无需重构大量代码。 - Mr. Polywhirl
1个回答

0
你遇到的错误是预期的行为。在严格模式下,interface关键字是保留的,在JavaScript文件中使用它将导致语法错误。
要使用Babel编译TypeScript代码(包括接口),您需要在最新版本的Babel中使用适用于TypeScript的适当Babel预设,即@babel/preset-typescript。
{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-typescript"
  ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接