作者:mobiledu2502909783 | 来源:互联网 | 2023-02-13 12:02
我有带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.ts
Ctrl + Shift + P上的TypeScript显示它们.但它似乎忽略了检查的类型,因为覆盖ObjectConstructor
当前文件解决了问题:
interface ObjectConstructor {
values(o: any): any[];
entries(o: any): [string, any][];
}
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"
]
}
这是什么意思?我的设置在某处出错吗?
TypeScript 2.1.5和最新的IDE(EAP 2017.1)仍然存在问题.