2017-03-11 125 views
16

我想在一个项目上运行的WebPack和我得到了多个错误找不到名称“PROPERTYKEY”

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" 
    ] 
} 

回答

34

我收到同一样的错误与@类型/核心JS在0.9.35

可能是别的东西..

编辑

已经有在回购一些变化上个星期。您可以通过以下链接阅读GitHub上的问题,看到了变化:

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

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

我的解决办法是改变

"lib": ["es5", "dom"]"lib": ["es6", "dom"]compilerOptions对象在我tsconfig文件。

通过这样做,我所犯的错误,而不降级到0.9.35

注意消失:你不需要改变目标(我仍然ES5)

+0

它适合我。但是,我有两台电脑运行VS2015 Pro与最新的更新和包,一个有问题,可以通过这个答案解决,而另一个不需要。有点奇怪。 – ZZZ

+0

也许你没有在正确的位置查找tsconfig?或者,也许有一个有升级版本的类型,另一个有另一个。 – Jackie

+2

更改为ES6不会中断IE 11操作吗?换句话说,ES6和浏览器合规性的后果是什么? – Brandon

5

降级@types/core-js到0.9.35。

升级到0.9.37后,我只是遇到同样的问题。

+0

我将我的版本降级到0.9.36,它工作。感谢:D –

2

可以确认装载版本0.9.35解决了这个问题为了我。

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

对我来说,答案是...

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

降级为 “@类型/核心JS”: “^ 0.9.35”,并增加lib添加到我的compilerOptions。 {

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

}:

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

tsconfig.json

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

添加“@ types/core-js”后:“^ 0.9.35”,是否需要运行npm命令?像npm更新什么的? 这仍然不适合我。 – Sam

2

我在tsconfig.json添加该代码

{ “compilerOptions” 解决我的问题, “排除” :[ “node_modules” ] }