找不到名称' PropertyKey'

时间:2017-03-11 17:55:11

标签: angular webpack

我正在尝试在项目上运行Webpack并且我遇到了多个错误

node_modules/@types/core-js/index.d.ts
error TS2304: Cannot find name 'PropertyKey'.
...
node_modules/@types/core-js/index.d.ts
error TS2339: Property 'for' does not exist on type 'SymbolConstructor'.

我应该安装所有的打字机,所以我不确定它们来自哪里。我尝试从编译的项目中复制package.json,但它没有帮助。我错过了什么?

我的tsconfig看起来像这样

{
  "compilerOptions": {
    "target": "es5",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]
}

6 个答案:

答案 0 :(得分:37)

我在@ types / core-js 0.9.35

时遇到了同样的错误

可能是别的......

修改

上周回购有一些变化。您可以在github上阅读该问题,并通过以下链接查看更改:

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/15104

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/15108/commits/f2c5c990e448550fcebec071c25e6a1e5766dde7

我的解决方案是改变

我的tsconfig文件中的"lib": ["es5", "dom"]对象中的

"lib": ["es6", "dom"]compilerOptions

通过这样做,我使错误消失而不降级到0.9.35

注意:你不需要改变目标(我的目标仍然是es5)

答案 1 :(得分:7)

对我来说答案是......

"compilerOptions": {
  ...
  "lib": [
    "es2016",
    "dom"
  ]
},

答案 2 :(得分:5)

将您的@types/core-js降级为0.9.35。

升级到0.9.37之后,我遇到了同样的问题。

答案 3 :(得分:2)

可以确认加载版本0.9.35为我修复了这个。

"devDependencies": {
    ...
    "@types/core-js": "0.9.35",
    ...
}

答案 4 :(得分:2)

降级为" @ types / core-js":" ^ 0.9.35"并将lib添加到我的compilerOptions。

"devDependencies": {
    "@types/core-js": "^0.9.35",
    ......
}

<强> tsconfig.json

{
"compilerOptions": {
    ........
    "lib": [
        "es2016",
        "dom"
    ]
},
"exclude": [
    "node_modules",
    ...
]
}

答案 5 :(得分:2)

我通过在tsconfig.json

中添加此代码解决了我的问题

{   &#34; compilerOptions&#34;:{

"experimentalDecorators": true,
"moduleResolution": "node",
  "lib": ["es2017", "dom"] //Please add this code in your tsconfig.json

},    &#34;排除&#34;:[          &#34; node_modules&#34;      ] }