5
您好我在使用WebStorm 2016.2.2时遇到支持tsconfig
中的“lib”属性的问题。在Object.assign和Promise上出现错误突出显示<any>
我试图编辑在IDE的喜好打字稿版本(Preferences -> Languages & Frameworks -> TypeScript
),并指向一个全球安装的打字稿2.0版本,但我仍然得到的东西错误突出状Object.assign
和Promise<any>
。
我重新启动了IDE多次,似乎没有任何改变,关于如何修复或调试的任何想法?
//tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"noEmitHelpers": true,
"strictNullChecks": false,
"baseUrl": "./src",
"paths": {
"core": ["app/core"],
"reactive": ["app/reactive"],
"models": ["app/models"],
"services": ["app/services"]
},
"lib": [
"dom",
"es6"
],
"types": [
"hammerjs",
"jasmine",
"node",
"protractor",
"selenium-webdriver",
"source-map",
"uglify-js",
"webpack"
]
},
"exclude": [
"node_modules",
"dist"
],
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true
},
"compileOnSave": false,
"buildOnSave": false,
"atom": { "rewriteTsconfig": false }
}
你指定'“target”:“es5”',这样编译器就可以用常规的[lib.d.ts]进行编译(https://github.com/Microsoft/TypeScript/blob/master/lib/lib .d.ts)而不是[lib.es6.d.ts](https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts),因此缺少这些定义。把它改为'“target”:“es6”'应该没问题。 –
请注意,如果您的目标浏览器不支持ES6,TS本身不提供任何polyfill。 – Stijn
@NitzanTomer你可以发布这个答案,所以我可以标记你是正确的吗?谢谢:) Stijn - 嗯,我正在使用core-js。 – exk0730