提问者:小点点

TypeScript-何时使用目标版本?


我很难理解tsc目标版本的含义(ES3与ES5)。

在TypeScript中,输出仍然使用Array.prototype.reduce即使我以ES3为目标,它说人们应该将其作为语言规范来阅读,但并没有澄清很多事情。据我所知,设置--目标对输出和警告/错误消息都没有任何影响。

我认为此选项是为了支持Visual Studio功能是否正确?


共2个答案

匿名用户

TypeScript 是 JavaScript 的超集,因此编译器只接触非 JavaScript 位,需要用 JavaScript 代码替换。“target”标志仅用于告诉编译器它可以在此处使用哪些功能。例如,如果您以 ES3 为目标,则具有属性访问器的 TypeScript 类将不会编译,因为编译器无法转换

class Foo {
    public get bar(): string {
        return 'Bar';
    }
}

转换成有效的ES3 JavaScript。

匿名用户

Array.prototype.reduce是一个API。TypeScript编译器不提供API。TypeScript开发人员需要了解JavaScript及其API。与CoffeeScript相同:“这只是JavaScript”。

例如,在 TS 代码中,可以使用 API Array.prototype.reduce,然后将代码转换为 ES3 语法。它将在带有es5-shim的IE8上运行。