你能描述一下打字脚本语言是什么吗?

它可以做JavaScript或可用库不能做的事情,这会让我有理由考虑它?

推荐答案

我最初写这个答案的时候,Typescript 还没写完

1000英尺视野...

TypeScript是JavaScript的超集,主要提供可选的静态类型、类和接口.最大的好处之一是使IDE能够为发现常见错误提供更丰富的环境.

要想了解我的意思,请看《语言Microsoft's introductory video》.

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

它是开源的,但只有在使用受支持的IDE时,才能在键入时获得智能感知.最初,这只是微软的VisualStudio(也在Miguel de Icaza的博客文章中提到).现在,other IDEs offer TypeScript support too.

有没有其他类似的技术?

CoffeeScript个,但这真的有不同的用途.据我所知,CoffeeScript为人类提供了可读性,但TypeScript也通过其可选的静态类型为tools提供了深度可读性(更多 comments 请参见本recent blog post).还有Dart个,但这是对JavaScript的完全替代(尽管是can produce JavaScript code个)

示例

例如,这里有一些打字脚本(你可以在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;
})();

请注意类型脚本是如何定义成员变量和类方法参数的类型的.它在转换为JavaScript时被删除,但被IDE和编译器用来发现错误,比如将数值类型传递给构造函数.

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

调试Typescript

许多浏览器和IDE通过源代码映射提供直接调试支持.有关更多详细信息,请参阅此堆栈溢出问题:调试Typescript code with Visual Studio

想知道更多吗?

我最初写这个答案的时候,Typescript 还在热印.有关此问题的更多最新细节,请查看Lodewijk's answer.

Javascript相关问答推荐

为什么我达到了时间限制!?LeetCode链接列表循环(已解决,但需要解释!)

vanillajs-datepicker未设置输入值,日期单击时未触发更改事件

Chart.js V4切换图表中的每个条,同时每个条下有不同的标签.怎么做?

Spring boot JSON解析错误:意外字符错误

如何在Obsidian dataview中创建进度条

如何用拉威尔惯性Vue依赖下拉?

JS—删除对象数组中对象的子对象

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

ChartJs未呈现

将Node.js包发布到GitHub包-错误ENEEDAUTH

为什么客户端没有收到来自服务器的响应消息?

Nextjs 13.4 Next-Auth 4.2登录(&Quot;凭据&,{});不工作

Next.js中的服务器端组件列表筛选

打字脚本中方括号符号属性访问和拾取实用程序的区别

背景动画让网站摇摇欲坠

如何正确地在ComponentWillUnmount中卸载状态以避免内存泄漏?

在Press Reaction本机和EXPO av上播放单个文件

使用VITE开发服务器处理错误

MAT-TREE更多文本边框对齐问题