小技巧
类型复用
复用
type
定义的类型:typescripttype Point = { x: number; y: number; }; type Coordinate = Point & { z: number; };
复用
interface
定义的类型:typescriptinterface Point { x: number; y: number; } interface Coordinate extends Point { z: number; }
interface
复用type
定义的类型:typescripttype Point = { x: number; y: number; }; interface Coordinate extends Point { z: number; }
type
复用interface
定义的类型:typescriptinterface Point { x: number; y: number; } type Coordinate = Point & { z: number; };
提取/排除属性
Props 接口需要被复用,但是需要排除 gender 字段,添加 hobby 字段:
typescript
interface Props { interface Props1 {
name: string; name: string;
age: number; => age: number;
gender: string; hobby: string;
} }
typescript
// Omit 排除属性
interface Props1 extends Omit<Props, "gender"> {
hobby: string;
}
// Pick 取出属性
interface Props1 extends Pick<Props, "name" | "age"> {
hobby: string;
}
忽略类型检测
单行忽略(添加到指定行)
ts
// @ts-ignore
文件忽略(添加到文件的首行)
ts
// @ts-nocheck