入门级TypeScript,《
黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程》https://www.bilibili.com/video/BV14Z4y1u7pi
| 版本号 | 描述 | |
|---|---|---|
| node -v | v14.18.3 | |
| npm -v | 6.14.6 | |
| tsc -v | 4.7.4 | |
| ts-node -v | 10.9.1 |



我们通过tsc将ts转换为js后对比结果如下:

运行结果如下:
khzdeMacBook-Pro:foo_ts khz$ ts-node class.ts
Person { name: 'lili', age: 18 }
我们可以看出,类的实现其实就是将class转换为一个函数;ts中类的构造函数,就是在函数中执行构造函数中的语句。
从运行结果中我们可以看出,类其实就是名为Person的对象。



TS是
Structural Type System(结构化类型系统),类型检测关注的是类的形状。
相对的,C#、Java等都是Nominal Type System(标明类型系统),const p: Point = new Point2D()这样的语句在C#中是会报错的。
成员多的可以赋值给成员少的:
class和interface之间也是可以兼容的
·函数兼容性比较复杂,需要考虑:
- 参数个数
- 参数类型
- 返回值类型

泛型函数:创建、调用




除此之外,上面的例子还包含了下面的约定:
- 对象obj的值不能是
非number类型的。
- 基于联合类型
in- 基于对象类型
in keyof
Partial
同时查询多个索引的类型:|和keyof