语法错误:未知:接口在严格模式下是保留字

use*_*043 5 javascript typescript reactjs babeljs

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

interface IState {
}
Run Code Online (Sandbox Code Playgroud)

并尝试编译与babel.transform我得到的错误:

SyntaxError: unknown: interface is a reserved word in strict mode
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?我该如何进行编译?

我在用:

"babel-cli": "^7.0.0-beta.3",
"babel-preset-es2015": "^7.0.0-beta.3",
"babel-preset-typescript": "^7.0.0-beta.3",
Run Code Online (Sandbox Code Playgroud)

Mac OSX 10.11.6

小智 0

您遇到的错误是预期行为。interface 关键字在严格模式下被保留,尝试在 JavaScript 文件中使用它会导致语法错误。

要使用 Babel 编译 TypeScript 代码(包括接口),您需要为 TypeScript 使用适当的 Babel 预设,在最新版本的 Babel 中为 @babel/preset-typescript。

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-typescript"
  ]
}
Run Code Online (Sandbox Code Playgroud)