我是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?
答案 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
存在于运行时中。