在Typescript中使用ECMA6数组方法?

时间:2016-04-15 17:55:02

标签: typescript ecmascript-6

我可以在Typescript中使用新的ECMA6数组方法,例如find()includes()吗?它们似乎有效,尽管编译器说:

error TS2339: Property 'find' does not exist on type 'User[]'.

The documentation暗示它应该在说

时起作用
  

TypeScript支持JavaScript中的新功能,例如支持   基于类的面向对象编程。

那为什么会给我一个错误?

1 个答案:

答案 0 :(得分:2)

您需要确保target中的tsconfig.json设置为"ES6"

"target": "ES6" // under "compilerOptions"

这将使find(..)包含Array<T> // test.ts var a: number[]; a.find(n => n === 3); {/ 1}}。

示例

tsc test.ts --target ES6 // ok
tsc test.ts --target ES5 // error: Property 'find' does not exist on type 'number[]'

然后编译:

interface Array<T> {
    find(predicate: (value: T, index: number, obj: Array<T>) => boolean, thisArg?: any): T;
}

<强>填充工具

如果您不想定位ES6而是使用polyfill,则可以将其添加到代码使用的定义文件中:

"DependsOn": "AttachGateway"