JavaScript灵活,快速地从头开始,并在网络上到处支持.
对于小脚本,快实验,和简单的浏览器工具,平版JavaScript往往足够了.
但随着工程的扩大,TypeScript开始解决JavaScript完全留给开发者的问题.
这就是为什么我越来越喜欢TypeScript 对于任何超出一个非常小的项目。
最大的区别是类型安全JavaScript允许变量自由更改类型.
例如:让khg5293 UserId=5293;khg5293 UserId="5293";即为有效的JavaScript.
有时这种灵活性是方便的,但也使得出乎意料的值更容易通过一个应用程序移动.
TypeScript 允许您定义一个值应该是什么 : 让 khg5293 UserId: number = 5293; 现在给 khg5293 UserId 指定一个字符串在开发过程中产生一个错误 。
这意味着在代码运行之前就发现某些错误.
对于小的khg5293实验来说,这可能不重要.
对于一个拥有许多文件和组件的更大型的应用程序来说,它变得更加有价值.
函数变得更容易理解 JavaScript 函数: 函数 get ProjectName( project) { return project.name;} 这里没有告诉我们应该包含什么项目。
使用 TypeScript 可以直接定义预期结构: Khg5293 类型 工程 = {名称: 字符串; 语言: 字符串; 公共: 布尔;}; 函数 get ProjectName( 项目: Khg5293 Project): string { return project.name;} 现在函数文档本身 。
开发者立即知道哪些对象应该传入,函数返回什么.
这在几周后返回项目或跨越更大的代码库工作时特别有用。
界面使数据结构更清晰的TypeScript也使得应用数据更容易被解释.
例如:接口 Khg5293 配置文件 {用户名: 字符串; 工程 : 数字; 活动: 布尔; } const khg5293Profile: Khg5293 Profile={用户名:"khg5293",项目Count:6,活性:真}; 如果其中一个属性缺失或类型错误,TypeScript可以在运行时间之前抓住这个问题.
在平版JavaScript中,这个错误可能只有在受影响的代码实际执行时才会被看到.
更好的自动完成 TypeScript最显著的好处之一是编辑器支持.
如果工程对象看起来像这样: 接口 Khg5293 项目 {标题: 字符串; 仓库: 字符串; 技术: 字符串[;] } const khg5293 项目: Khg5293 项目={标题:"算法视觉器",寄存器:"khg5293-算法视觉器",技术:["反应","TypeScript"];打字时:khg5293Project.
VS 代码等编辑器已经知道标题、仓库和技术。
这使得自动完成更加有用,并减少了不断记住对象结构的需要.
重塑感觉更安全 想象一下将整个大型项目使用的地产重新命名 在JavaScript中,有可能错过一个引用,只在后期发现问题.
通过TypeScript,编译器可以识别旧结构不再有效的地方.
例如:接口 Khg5293 Tool {工具Name:字符串;类别:字符串;}const khg5293 Tool: Khg5293 Tool = {工具Name:"JSON Formatter",类别:"Web Utity"}; 如果工具名后来被重新命名, TypeScript 帮助识别仍然期望工具的代码Name.
这使得大的因素 吓人得多。
TypeScript仍然是JavaScript TypeScript在浏览器中并不取代JavaScript.
TypeScript代码在运行前被编译为JavaScript.
例如: const khg5293 Message: string = "Hello from khg5293"; 可能最终变成: const khg5293Message = "Hello from khg5293"; 类型信息在写入应用程序时帮助开发者,但浏览器仍然执行JavaScript.
这是一个重要的区别。
TypeScript在JavaScript上方增加了一个开发层,而不是创建一个完全不同的运行时间.
JavaScript 仍然有它的位置 I