一尘不染

什么是 TypeScript,我为什么要用它来代替 JavaScript?

javascript

你能描述一下 TypeScript 语言是什么吗?

JavaScript 或可用库不能做什么,这让我有理由考虑它?


阅读 155

收藏
2022-02-15

共1个答案

一尘不染


TypeScript
是 JavaScript 的超集,主要提供可选的静态类型、类和接口。一大好处是使 IDE 能够提供更丰富的环境,以便在您键入代码时发现常见错误。

要了解我的意思,请观看Microsoft 的语言介绍视频。

对于大型 JavaScript 项目,采用 TypeScript 可能会产生更强大的软件,同时仍可部署在运行常规 JavaScript 应用程序的地方。

它是开源的,但如果您使用受支持的 IDE,您只能在键入时获得智能 Intellisense。最初,这只是微软的 Visual Studio(在Miguel de Icaza的博客文章中也有提及)。如今,其他 IDE 也提供 TypeScript 支持

还有其他类似的技术吗?

CoffeeScript,但这确实有不同的目的。恕我直言,CoffeeScript 为人类提供了可读性,但 TypeScript 还通过其可选的静态类型为工具提供了深度可读性(请参阅这篇最近的博客文章以获得更多评论)。还有Dart,但它完全替代了 JavaScript(尽管它可以生成 JavaScript 代码

例子

例如,这里有一些 TypeScript(你可以在TypeScript Playground中使用它)

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

这是它会生成的 JavaScript

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

注意 TypeScript 如何定义成员变量和类方法参数的类型。这在转换为 JavaScript 时会被删除,但 IDE 和编译器会使用它来发现错误,例如将数字类型传递给构造函数。

它还能够推断未显式声明的类型,例如,它将确定greet()方法返回一个字符串。

2022-02-15