TypeScript - 何时使用目标版本?

Posted

技术标签:

【中文标题】TypeScript - 何时使用目标版本?【英文标题】:TypeScript - When to use target version? 【发布时间】:2014-12-18 19:30:30 【问题描述】:

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

在TypeScript output still uses Array.prototype.reduce even though I target ES3 中,它说应该将其作为语言规范来阅读,但并没有把事情弄清楚很多。据我尝试,设置--target 对输出和警告/错误消息没有任何影响。

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

【问题讨论】:

【参考方案1】:

TypeScript 是 javascript 的超集,因此编译器只涉及非 JavaScript 位,需要用 JavaScript 代码替换。 “目标”标志仅用于告诉编译器它可以在此处使用哪些功能。例如,TypeScript classes with property accessors will not compile if you target ES3 作为编译器无法转换的 TypeScript 位

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

转换成有效的 ES3 JavaScript。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于TypeScript - 何时使用目标版本?的主要内容,如果未能解决你的问题,请参考以下文章

何时在 TypeScript / Angular 中使用接口和模型

何时在 TypeScript 中使用类与模块?

React-native:从 javascript 迁移到 typescript

如何找到对任何版本节点的最新 Typescript 目标支持?

Vue.js 2.5新特性介绍(推荐)

何时使用TypeScript:常见场景的详细介绍