gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:10:22 31 4
gpt4 key购买 nike

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

有什么是 JavaScript 或可用库无法做到的,这让我有理由考虑它?

最佳答案

I originally wrote this answer when TypeScript was still hot-off-the-presses. Five years later, this is an OK overview, but look at Lodewijk's answer below for more depth

1000 英尺 View ...

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

要了解我的意思,请观看 Microsoft's introductory video关于语言。

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

它是开源的,但如果您使用受支持的 IDE,您只能在键入时获得智能 Intellisense。最初,这只是 Microsoft 的 Visual Studio(在 Miguel de Icaza 的博文中也有提及)。这些天,other IDEs offer TypeScript support too .

还有其他类似的技术吗?

CoffeeScript ,但这确实有不同的目的。恕我直言,CoffeeScript 为人类提供了可读性,但 TypeScript 还通过其可选的静态类型为工具 提供了深度可读性(请参阅此 recent blog post 以获得更多评论)。还有Dart但这是对 JavaScript 的完全替代(尽管它是 can produce JavaScript code)

示例

例如,这里有一些 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() 方法返回一个字符串。

调试 TypeScript

许多浏览器和 IDE 通过源映射提供直接调试支持。有关详细信息,请参阅此 Stack Overflow 问题:Debugging TypeScript code with Visual Studio

想了解更多?

我最初在 TypeScript 还很热门的时候写了这个答案。查看 Lodewijk's answer到这个问题了解更多最新的细节。

关于javascript - 什么是 TypeScript,我为什么要用它来代替 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12694530/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com