为什么微软开发了一种名为Typescript的新语言,而不是创建C#到Javascript的转换程序

Why Microsoft has developed a new language called Typescript instead of creating C# to Javascript transpiler

本文关键字:创建 程序 转换 Javascript 语言 微软 开发 一种 新语言 为什么 Typescript      更新时间:2023-09-26

Typescript是用于开发Javascript应用程序的语言。我不明白为什么要创建新的语言,而不是使用成熟和不断发展的语言,比如C#。C#本可以用于将代码转换为Javascript。有许多第三方和开源项目做这项工作。C#现在支持闭包、动态关键字,所以将C#转换为javascript本来很容易。从语法上看,Typescript似乎也受到了C#的影响。

所以问题是

  1. 为什么微软开发了一种名为Typescript的新语言,而不是创建C#到Javascript的转换程序?C#本可以用于同样的目的
  2. 这背后有什么技术/其他原因吗

为什么微软开发了一种名为Typescript的新语言创建C#到Javascript转译程序?C#本可以用于同样的目的。

这背后有什么技术/其他原因吗?

从技术上讲是的,但不是。C#的规则与JavaScript的规则截然不同。他们看起来可能一样,但相距甚远。(这有点像说Java和JavaScript是一样的,因为它们都使用括号,而且都以Java开头。)TypeScript扩展了JavaScript语言。您仍然可以在TypeScript中编写JavaScript。如果你使用C#,你就无法做到这一点。

下面是一些例子。在C#中,可以有多个构造函数。JavaScript(像Highlander)只能有一个。

C#允许方法重载。JavaScript。。。。没有。

JavaScript在一个方法调用中可以有可变数量的参数。您可以有一个方法,它接受5个参数,如果您愿意,可以用5、4、0或7来调用它。C#无法处理此问题。

现在您可以从C#生成JavaScript代码,但实际上您只是强制使用JavaScript的一个子集来适应C#的使用。TypeScript是一种在JavaScript范围内工作的全新语言,同时提供了强类型语言允许的一些结构。

Typescript是Javascript的严格超集,这意味着几乎所有有效的JS也是有效的Typescript。它是为了与Javascript互操作而设计的。C#永远不可能处于同一级别。许多不同的语义可能不太明显,但肯定很难。

语法可能相似,但这两种语言在功能方面完全不同。