我正在尝试使用新Set删除数组中的重复项,并给出错误消息“ new Set(names.slice is a function)”。
const names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
const uniq = [ ...new Set(names) ];
console.log(uniq);
这是code上的闪电战
答案 0 :(得分:4)
我能够通过在项目的根目录中添加tsconfig.json
来解决错误。这是一个超级简单的配置:
{
"compilerOptions": {
"target": "es6"
}
}
正在发生的事情是TypeScript正在编译为JavaScript的es3
版本,如果没有将目标配置为shown here(请参见--target
),则这是默认版本。
答案 1 :(得分:2)
当您的代码进入构建阶段并从TypeScript转换为JavaScript时,您发布的第二行变为:
var uniq = new Set(names).slice();
我个人认为这是TypeScript错误,但是我从不使用TypeScript,所以我不能肯定地说。
edit -实际上,除非您以ES5为目标,否则我认为这不会发生。