类型系统指的是,类型检查器为程序分配类型时使用的一系列规则。
不同的语言采用的类型系统不尽相同。
JavaScript、Python、Ruby在运行时推导类型;
Haskell和OCaml在编译时推导和检查类型;
Scala和TypeScript要求显式声明部分类型,然后在编译时推导和检查余下的部分;
Java和C几乎需要显示注解所有类型,然后在编译时候检查。
注:TypeScript身兼两种类型系统,可以显式注解类型,也可以让Typescript推导多数类型。不过一般来说,最好让TypeScript推导类型,少数情况下才显式注解类型。
let a: number = 1 // 显示注解类型 let a = 1 //推导类型
去掉注解后,类型并没有变。