我很难理解tsc
目标版本的含义是什么(ES3与ES5)。
在TypeScript output still uses Array.prototype.reduce even though I target ES3中,它应该将其视为语言规范,但不会清除很多内容。据我所知,设置--target
对输出和警告/错误消息没有任何影响。
我认为此选项是否支持Visual Studio功能是否正确?
答案 0 :(得分:3)
TypeScript是JavaScript的超集,因此编译器只接触非JavaScript位,需要用JavaScript代码替换它们。 “target”标志仅用于告诉编译器它可以在这里使用哪些功能。例如,TypeScript classes with property accessors will not compile if you target ES3因为编译器无法转换
的TypeScript位class Foo {
public get bar(): string {
return 'Bar';
}
}
进入有效的ES3 JavaScript。
答案 1 :(得分:1)
Array.prototype.reduce
是一个API。 TypeScript编译器不提供API。 TypeScript开发人员需要了解JavaScript及其API。与CoffeeScript一样:“它只是JavaScript”。
例如,在TS代码中,可以使用API Array.prototype.reduce
,然后将代码转换为ES3语法。它适用于IE8 es5-shim。