Est*_*ask 5 jetbrains-ide phpstorm webstorm typescript ecmascript-2017
我有带ES6目标的TypeScript项目,它用于core-js填充ES2017功能,并相应地配置tsconfig.json.
当Object.entries(...)和Object.values(...)使用时,结果不具有阵列的方法和属性(map,forEach,length等),它们显示为纯对象IDE,所以any[]类型应明确浇铸:
虽然Object.keys(...)表现得像它应该.
同时,IDE以某种方式'知道'正确的类型,Object.entries并Object.values按照lib.es2017.object.d.tsCtrl + Shift + P上的TypeScript显示它们.但它似乎忽略了检查的类型,因为覆盖ObjectConstructor当前文件解决了问题:
interface ObjectConstructor {
values(o: any): any[];
entries(o: any): [string, any][];
}
Run Code Online (Sandbox Code Playgroud)
tsc 对于打字来说似乎很好,所以它看起来像IDE特定的问题.
只有Use TypeScript service在Languages & Frameworks > TypeScript未选中时才会发生这种情况.启用TypeScript服务时,所有内容都正常(由于之前存在TS服务问题,故意禁用它).
这是tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"alwaysStrict": true,
"strictNullChecks": false,
"baseUrl": "./src",
"paths": [],
"lib": [
"es2016",
"es2017.object"
]
},
"exclude": [
"node_modules"
]
}
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我的设置在某处出错吗?
TypeScript 2.1.5和最新的IDE(EAP 2017.1)仍然存在问题.
Typescript 2.3 引入了对编译器标志后面的迭代器的新支持--downlevel-iteration,或者.compilerOptions.downlevelIteration通过true在tsconfig.json.
请注意,这个答案与那个答案相同,因为它指的是相同的编译器标志和类似的症状,尽管一个答案指的是编译器的问题,而这个答案是关于某些 IDE 集成的。
| 归档时间: |
|
| 查看次数: |
2607 次 |
| 最近记录: |