1. 善用类型注释
通过/** */
形式的注释给TypeScript类型做标记提示,之后我们在悬浮到使用该类型的地方时,编辑器就会提示你注释的内容。
/** person information*/
interface User {
name:string;
age:number;
sex:'male' | 'female'
}
const p:User = {
name:'lili',
age:10,
sex:'female'
}
2.善用类型扩展
TypeScript
中定义类型有两种方式:接口(interface
)和类型别名(type alias
)只是语法不一样而已
//interface
interface Point {
x:number;
y:number;
}
interface SetPoint {
(x:number,y:number):void
}
//type
type Point {
x:number;
y:number;
}
type SetPoint=(x:number,y:number)=>void
- 接口和类型别名可以扩展:
//接口 继承 接口
interface PartialPointX {
x:number;
}
interface Point extends PartialPointX{
y:number;
}
//类型别名 继承 类型别名
type PartialPointX {
x:number;
}
type Point extends PartialPointX & {
y:number;
}
- 接口和类型别名并不互斥,也就是说,接口可以扩展类型别名,类型别名乐意扩展接口
//接口 继承 类型别名
type PartialPointX {
x:number;
}
interface Point extends PartialPointX{
y:number;
}
// 类型别名 继承 接口
interface PartialPointX {
x:number;
}
type Point extends PartialPointX & {
y:number;
}
- 接口和类型别名的使用场景:
- 在定义公共的API(如编辑一个库)时使用
interface
,这压根可以方便使用者继承接口; - 在定义组件属性
props
和状态state
时,加以使用type
,因为type
的约束性更强; type
类型不能二次编辑,而interface
可以随时扩展
- 在定义公共的API(如编辑一个库)时使用
3.善用声明文件
-
声明文件必须以
.d.ts
为后缀。一般来说,TypeSript
会解析项目中所有的*.ts
文件,因此也包含.d.ts
结尾的声明文件。 -
只要
tsconfig.json
中配置包含了typing.d.ts
文件,那么其他所有的*.ts
文件都可以获得声明文件中的类型定义。
3.1 第三方生命文件
-
当在
TypeScript
项目中使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。 -
针对多数第三方库,社区已经帮我们定义好了它们的声明文件,我们可以直接下载下来使用。一般推荐使用
@types
统一管理第三方库的声明文件,@types
的使用方式很简单,直接用npm
或yarn
安装对应的声明模块即可。 -
未完
https://juejin.cn/post/7058868160706904078
-