为什么Microsoft开发了一种名为Typescript的新语言,而不是为Javascript转换器创建C#

时间:2016-04-18 12:41:55

标签: javascript c# syntax typescript

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

所以问题

  1. 为什么Microsoft开发了一种名为Typescript的新语言而不是为Javascript转换器创建C#? C#本来可以用于相同的目的。
  2. 背后有任何技术/其他原因吗?

2 个答案:

答案 0 :(得分:4)

  

为什么Microsoft开发了一种名为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的范围内工作,同时提供强类型语言允许的一些结构。

答案 1 :(得分:0)

Typescript是Javascript的严格超集,这意味着几乎所有有效的JS都是有效的Typescript。它是为了与Javascript的互操作性而制作的。 C#永远不会处于同一水平。许多不同的语义可能不是很明显,但绝对是困难的。

语法可能类似,但这两种语言的功能完全不同。