es6功能无法在TypeScript中编译

时间:2018-07-14 21:00:42

标签: javascript typescript

我是TypeScript的新手,在编译es6代码时遇到了一些麻烦。

我有一个.ts文件:

let a: number[] = [1,34,5,5,34,3];

console.log(a.find(no => no == 5));

当我运行tsc --module es6 --target es2015 src/test.ts时,它可以正常编译,但是tsc --module es6 --target es5 src/test.ts似乎不起作用?我想定位到es5,但是这样做却给了我错误:

Property 'find' does not exist on type 'number[]'.

TypeScript不能编译为es5,还是需要在TypeScript编译器的顶部运行babel?

1 个答案:

答案 0 :(得分:3)

Typescript可以编译为es5,唯一的问题是find方法是在es2015标准中定义的,因此Typescript会假定它不存在。

Typescript有两种方法来控制您要编译为哪种标准的target,它告诉编译器如何编译语法,而lib则告诉编译器运行时环境是什么样(请参阅{{3} },并提供示例的详细答案)

要定位es5但要获得find方法,还需要指定lib:

tsc --module es6 --target es5 src/test.ts --lib es2015,dom,scripthost

请注意,打字稿将不提供任何填充,您可以自带,也可以希望find存在于运行时中。