Typescript的优势

  1. 动态语言约束,程序更容易理解,自动代码补全,效率更高
  2. 在编译期间就能发现大部分错误,完全兼容 js
  3. 提供了强大的静态分析能力,结合 TSLint 能对代码做到更加严格的检查约束
  4. 传统的 EcmaScript 由于没有静态类型,即使有了 ESLint 也只能做到很基本的检查

编程语言类型

  1. 无类型: 汇编
  2. 弱类型、静态类型 : C/C++;PHP是动态语言,弱类型
  3. 弱类型、动态类型检查: Perl/PHP;PHP是动态语言,弱类型
  4. 强类型、静态类型检查 :Java/C#
  5. 强类型、动态类型检查 :Python, Scheme
  6. 静态显式类型 :Java/C
  7. 静态隐式类型 :Ocaml, Haskell

动态语言

动态语言 Dynamically Typed Language

  1. 编译阶段不知道类型,运行时才知道;类型错误抛出异常发生在运行时。如 JS、Python,PHP
  2. 运行期间做数据类型检查,运行期间捕获到错误

静态语言

静态语言 Statically Typed Language

  1. 编译阶段做数据类型检查,编译时就知道每一个变量的类型
  2. 类型错误编译失败是语法问题,例如:C, C++, C#, Java
  3. 编译期间能够发现大部分错误,防止了一些常见的错误

强类型语言

  1. 不允许隐式类型转换,如:Python,1+’1’会抛出TypeError

弱类型语言

  1. 允许隐式类型转换,弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换
  2. 如:JS,1+’1’=’11’,数字型转成了字符型
  3. C++ 静态语言,也是弱类型语言

为什么要用 ts开发大型应用

  1. 开发效率上,强类型约束和静态检查:能做到智能提示,智能感知编译前感知 bug
  2. 增强了代码的易读型,重构起来更放心、更方便
  3. 静态类型检查最明显的好处:尽早的检查出程序中的错误
  4. 框架、库之类的公共模块,那更建议用TS
  5. 如果是中小型项目,且生命周期不是很长,那就直接用JS吧,不要被TS束缚住了手脚