关于TypeScript
TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作 Prototype。C#的首席架构师以及Delphi和Turbo Pascal的创始人安德斯·海尔斯伯格参与了TypeScript的开发。[4][5][6][7]
TypeScript设计目标是开发大型应用,然后转译成JavaScript。[8]由于TypeScript是JavaScript的严格超集,任何现有的JavaScript程序都是合法的TypeScript程序。
TypeScript支持为现存JavaScript库添加类型信息的定义文件,方便其他程序像使用静态类型的值一样使用现有库中的值。当前有第三方提供常用库如jQuery、MongoDB、Node.js和D3.js的定义文件。
TypeScript编译器本身也是用TypeScript编写,并被转译为JavaScript,以Apache License 2发布。 — 维基百科
关于TypeScript中文网的提示
www.tslang.cn 是TypeScript中文网,上面的文档有些滞后,目前仍停留在3.1版本.不过作为入门学习还是可以的,但建议参考官网最新文档.
发布3.7版本
主要更新内容:
- Optional Chaining
- Nullish Coalescing
- Assertion Functions
- Better Support for never-Returning Functions
- (More) Recursive Type Aliases
- –declaration and –allowJs
- The useDefineForClassFields Flag and The declare Property Modifier
- Build-Free Editing with Project References
- Uncalled Function Checks
- // @ts-nocheck in TypeScript Files
- Semicolon Formatter Option
详细更新内容: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html
Optional Chaining
这是个很有用的功能,可以在编码时减少判断.
示例:
// 之前 if (foo && foo.bar && foo.bar.baz) { // ... } // 现在 if (foo?.bar?.baz) { // ... } // 语法是: ?. , 可作用于: obj?.prop // 静态属性访问 obj?.[expr] // 动态访问 func?.(...args) // 函数或方法调用
其实在JavaScript官方中也定义了类似的,但目前没有任何浏览器支持.相关文档可以参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/%E5%8F%AF%E9%80%89%E9%93%BE
其余特性请参考官方更新日志.