19/12/10

10
2019/12
2019/12/11 09:37:41
  1. ts与js的关系:ts是js的超集,在js基础上添加了开发编译时的类型检查,所有的js都是ts程序,但是只有一部分才能通过ts的类型检查。
  2. ts的类型检查与代码编译生成是无关的两件事情,即使类型检查不通过,编译生成js也会进行下去。
  3. 不能再运行时进行ts的类型判断,不能使用 instanceof 来判断一个类型是否属于一个 interface 。
  4. 类型操作符 e.g. a as number 并不会影响运行时,运行时中a并不会被转换为number。
  5. ts以结构上的类型进行类型判断(鸭式辩形),只要使用的值得类型结构与既定类型一致就能通过类型检查,哪怕是多了一些属性。
  6. 鸭式辩形会带来一些问题:多了一些参数并不会报错,那么将三维坐标(x,y,z)传入计算二维距离(x,y)的方法中也会得到一个结果,但是这个结果并不是三维坐标距离。