安装
npm install -g typescript
npm i -g ts-node
类型
string、boolean、number、unknown而不是any、type | type选其一、type[]统一类型数组、[typeOne、typeTwo]按下标定义类型、enum枚举、void函数无return、默认值null和undefined、抛错never、symbol取唯一免覆盖、bigint无限
字面量类型(也可以是数字或布尔或对象)
类型断言
在联合类型中预访问类型的属性或方法,避免报错
(当传数值123时,无length属性,而联合类型只允许访问公有属性和方法,因此会报错;使用as断言成string能避免报错,但是并非进行了类型转换,这实际上是走到了else逻辑)
例2
接口-描述object/类/函数
问号可选、readonly只读
不具名key(索引签名)
(当属性数量是可扩展时,可使用字符串索引签名来实现)
函数调用签名
(函数必须实现某个接口)
构造器签名
(类在实现接口过程中,只会校验静态属性或方法,如果想对构造函数constructor做校验,则需要使用构造器签名)
类实现接口
(使用implements 关键字以使类实现接口;这要求类的静态属性或方法必须实现接口定义)
继承
(在无签名的前提下,对象必须完全实现接口,若通过extends进行了继承,则只需要实现任一即可)
混合接口