Typescript ';设置';仅引用类型,但在此处用作值。(TS2693)
考虑以下代码来检查数组是否有重复项Typescript ';设置';仅引用类型,但在此处用作值。(TS2693),typescript,Typescript,考虑以下代码来检查数组是否有重复项 let arr: number[] = [1,2,3,1]; function hasDuplicates (arr: number[]): boolean { return new Set(arr).size !== arr.length; } 但在这里我遇到了typescript编译器错误 'Set' only refers to a type, but is being used as a value here. (TS2693) 有什么建议吗
let arr: number[] = [1,2,3,1];
function hasDuplicates (arr: number[]): boolean {
return new Set(arr).size !== arr.length;
}
但在这里我遇到了typescript编译器错误
'Set' only refers to a type, but is being used as a value here. (TS2693)
有什么建议吗?
Set
已作为ES6的一部分添加。如果您的目标是ES5或更低,则会出现此错误
您可以通过将目标升级到tsconfig.json
中的es6
来解决此问题:
"compilerOptions": {
"target": "es6",
// ...
}
或者,如果您不想更改目标,但希望编译代码,请将es6
添加到lib
选项中:
"compilerOptions": {
"lib": ["es6"],
// ...
}
请注意,使用这种方法,如果运行时环境不支持
Set
类,则会引发运行时错误。或者,如果您只需要es6
lib中的集合,则可以使用es2015.collection
。