Typescript的优势
- 动态语言约束,程序更容易理解,自动代码补全,效率更高
- 在编译期间就能发现大部分错误,完全兼容 js
- 提供了强大的静态分析能力,结合 TSLint 能对代码做到更加严格的检查约束
- 传统的 EcmaScript 由于没有静态类型,即使有了 ESLint 也只能做到很基本的检查
编程语言类型
- 无类型: 汇编
- 弱类型、静态类型 : C/C++;PHP是动态语言,弱类型
- 弱类型、动态类型检查: Perl/PHP;PHP是动态语言,弱类型
- 强类型、静态类型检查 :Java/C#
- 强类型、动态类型检查 :Python, Scheme
- 静态显式类型 :Java/C
- 静态隐式类型 :Ocaml, Haskell
动态语言
动态语言 Dynamically Typed Language
- 编译阶段不知道类型,运行时才知道;类型错误抛出异常发生在运行时。如 JS、Python,PHP
- 运行期间做数据类型检查,运行期间捕获到错误
静态语言
静态语言 Statically Typed Language
- 编译阶段做数据类型检查,编译时就知道每一个变量的类型
- 类型错误编译失败是语法问题,例如:C, C++, C#, Java
- 编译期间能够发现大部分错误,防止了一些常见的错误
强类型语言
- 不允许隐式类型转换,如:Python,1+’1’会抛出TypeError
弱类型语言
- 允许隐式类型转换,弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换
- 如:JS,1+’1’=’11’,数字型转成了字符型
- C++ 静态语言,也是弱类型语言
为什么要用 ts开发大型应用
- 开发效率上,强类型约束和静态检查:能做到智能提示,智能感知编译前感知 bug
- 增强了代码的易读型,重构起来更放心、更方便
- 静态类型检查最明显的好处:尽早的检查出程序中的错误
- 框架、库之类的公共模块,那更建议用TS
- 如果是中小型项目,且生命周期不是很长,那就直接用JS吧,不要被TS束缚住了手脚
