使用新的Set删除数组中的重复项会出现错误

时间:2018-11-03 15:58:11

标签: javascript typescript spread-syntax

我正在尝试使用新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上的闪电战

2 个答案:

答案 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为目标,否则我认为这不会发生。