我正在将 JS 代码库迁移到 TS。它使用方法
Math.sign()
。然而,编译器给出了这个错误-
Property 'sign' does not exist on type 'Math'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later.
它不应该给出,因为我的目标版本是“es2016”,并且这是在“es2015”中添加的
这是我当前的 tsconfig 文件,所以我不明白为什么会发生这种情况以及如何解决此问题-
{
"compilerOptions": {
"target": "es2016",
"lib": ["es2016", "dom"],
// other things
}
}
当您向打字稿编译器传递输入文件时,它会忽略
tsconfig.json
并生成一个新的临时配置文件,其中包含您传递的参数。您可以通过运行来检查
$ npx tsc index.ts --showConfig
{
"compilerOptions": {},
"files": [
"./index.ts"
]
}
要使用配置文件,您应该将输入文件放置在
files
属性中,如下所示
{
"compilerOptions": {
"target": "es2016",
"lib": ["es2016", "dom"],
// other things
},
"files": ["./index.ts"]
}
然后像这样运行
npx tsc
或者可选择提供您的项目的路径
npx tsc --project path/to/folder/containing/tsconfig
如果您好奇,也可以在避免像这样的配置文件的同时执行此操作:
npx tsc index.ts --target es2016 --lib es2016,dom
您确实可以再次使用
--showConfig
验证这是否有效
$ npx tsc index.ts --target es2016 --lib es2016,dom --showConfig
{
"compilerOptions": {
"target": "es2016",
"lib": [
"es7",
"dom"
],
"module": "es6",
"moduleResolution": "classic"
},
"files": [
"./index.ts"
]
}