为什么微软开发了一种名为Typescript的新语言,而不是创建C#到Javascript的转换程序
Why Microsoft has developed a new language called Typescript instead of creating C# to Javascript transpiler
Typescript是用于开发Javascript应用程序的语言。我不明白为什么要创建新的语言,而不是使用成熟和不断发展的语言,比如C#。C#本可以用于将代码转换为Javascript。有许多第三方和开源项目做这项工作。C#现在支持闭包、动态关键字,所以将C#转换为javascript本来很容易。从语法上看,Typescript似乎也受到了C#的影响。
所以问题是
- 为什么微软开发了一种名为Typescript的新语言,而不是创建C#到Javascript的转换程序?C#本可以用于同样的目的
- 这背后有什么技术/其他原因吗
为什么微软开发了一种名为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#永远不可能处于同一级别。许多不同的语义可能不太明显,但肯定很难。
语法可能相似,但这两种语言在功能方面完全不同。
- 如何创建带有插槽的vue js组件预加载程序
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- Javascript库创建类似heroku仪表板的应用程序
- 我需要学习Java才能使用phoneGap创建android应用程序吗
- 要求创建空模块作为依赖项加载程序
- 创建nw.js+流星桌面应用程序
- Chrome应用程序在全屏中创建新窗口-html元素不是全高的
- 如何创建可从多个应用程序使用的PHP登录web服务
- Ember.js+传单+rails(使用Javascript MVC创建rails应用程序并打开源代码映射)
- RequireJS正在加载angular应用程序,但没有't创建app.controller
- 在动态创建的元素中包含参数的事件处理程序
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 如何使用引导程序创建自定义滚动条
- 如何使用引导程序创建模式窗口
- 在Chrome扩展程序图标中创建一个切换开关,以打开/关闭JavaScript
- 我想在混合移动应用程序中使用Sqlite插件(Cordova)创建一个示例项目
- 创建程序以显示当前日期和时间
- 如何为形成框的星号创建程序
- 在用javascript和html创建程序时遇到问题