欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

typeScript笔记 --- 高级类型

程序员文章站 2022-07-12 15:42:11
...

映射类型

interface Obj {
		a: string;
		b: number;
		c: boolean;
	}
	同态类型  只能映射存在的
type ReadonlyObj = Readonly<Obj>     // 只读  
type PartialObj = Partial<Obj>  // 接口所有的属性变成可选的
type PickObj = Pick<obj,'a'|'b'> // 要抽取的接口的key
  非同态类型   开定义新的属性
type RecordObj = Record<'x' | 'y', Obj>  //第一个参数是:要定义的新已知类型的属性,第二个参数是已有的

条件类型

// T extends U ? X : Y;

type TypeName<T> = 
				T extends string ? "string" :
				T extends number ? "number" :
				T extends boolean ? "boolean" :
				T extends undefined ? "undefined" :
				T extends Funtion ? "function" :
				"object"
 		type T1 = TypeName<string>
 		type T2 = TypeName<string[]>
 		// (A | B) extends U ? X : Y
		type T3 = TypeName<string | string[]>
		type Diff<T, U> = T extends U ? never : T;
		type T4 = Diff<"a" | "b" | "c", "a" | "c">
相关标签: typeScript