哪里有做网站服务,WordPress的固态链接,网站建设订单,北京网站定制这些工具类型是 TypeScript 提供的强大功能#xff0c;用于操作和转换类型。下面是每个工具类型的简要说明和示例#xff1a;
1、Record
let value: Recordstring, any { name: , age: 0, desc: [] };
let value2: { [key: string]: any } { name: 用于操作和转换类型。下面是每个工具类型的简要说明和示例
1、Record
let value: Recordstring, any { name: , age: 0, desc: [] };
let value2: { [key: string]: any } { name: , age: 0, desc: [] };
2、PartialT: 将类型 T 的所有属性设置为可选。
interface Person {name: string;age: number;}type PartialPerson PartialPerson; // { name?: string; age?: number; }let value: PartialPerson {};let value2: PartialPerson { name: };let value3: PartialPerson { age: 0 };3、 RequiredT: 将类型 T 的所有属性设置为必选。 interface PartialPerson {name?: string;age?: number;
}type RequiredPerson RequiredPartialPerson; // { name: string; age: number; }let value: RequiredPerson { name: , age: 0 };4、 ExcludeT, U: 从类型 T 中排除 U 的类型。
type T string | number | boolean;type U string | number;type Excluded ExcludeT, U; // 结果为 booleanlet value: Excluded false;5、OmitT, K: 从类型 T 中移除属性 K。
interface Person {name: string;age: number;address: string;}type WithoutAddress OmitPerson, address; // 结果为 { name: string; age: number; }let value: WithoutAddress { name: , age: 0 };6、ReadonlyT: 将类型 T 的所有属性设置为只读。
interface Person {readonly name: string;readonly age: number;}type ReadonlyPerson ReadonlyPerson;let value: ReadonlyPerson { name: , age: 0 };7、 PickT, K: 从类型 T 中选取指定属性 K 构造新类型。
interface Person {name: string;age: number;address: string;
}type NameAndAge PickPerson, name | age; // { name: string; age: number; }let value: NameAndAge { name: , age: 0 };
8、NonNullableT: 从类型 T 中排除 null 和 undefined。
type NullableString string | null | undefined;
type NonNullableString NonNullableNullableString; // 结果为 stringlet value: NonNullableString ;
9、ReturnTypeT: 获取函数类型 T 的返回值类型。
type Func () string;
type Result ReturnTypeFunc; // 结果为 stringlet value: Result ; 10、ParametersT: 获取函数类型 T 的参数类型组成的元组。
type Func (x: number, y: string) boolean;
type Args ParametersFunc; // 结果为 [number, string]let value: Args [0, ]; 11、OverwriteT, U: 使用 U 中的属性覆盖 T 中的对应属性。
type T { a: number; b: string };
type U { b: boolean; c: string };
type OverwriteT, U OmitT, keyof U U;
type OverwriteType OverwriteT, U; // 结果为 { a: number; b: boolean; c: string; }let value: OverwriteType { a: 0, b: true, c: };
12、IntersectionT, U: 返回 T 和 U 的交集类型。
type T { a: number; b: string };
type U { b: boolean; c: string };
type IntersectionT, U OmitT, keyof OmitT, keyof U;
type Intersected IntersectionT, U; // 结果为 { b: string; }let value: Intersected { b: };