You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
typePerson={name: string;age:number;skill: ['code'],}/** * From T pick a set of properties K * type Pick<T, K extends keyof T> = { [P in K]: T[P] }; */typeP1=Pick<Person,"name"|"age">;// { name: string; age: number; }constuser:P1={name:'olive',age:18}
7. Omit
与Pick相反,Omit<K,T> 基于已经声明的类型进行属性剔除获得新类型
// type Omit=Pick<T,Exclude<keyof T,K>>interfacePerson{name: string,age: number,skill: string}typeP1=Omit<Person,"age"|"skill">constuser:P1={name: 'olive'}
例如下面的例子 value is object就会认为如果函数返回 true 那么定义的 value 就是 object 类型
functionisObject(value: unknown): value is object{returntypeofvalue==="object"&&value!==null;}functionfn(x: string|object){if(isObject(x)){// ....}else{// .....}}
typeof
keyof 关键词
索引访问操作符
映射类型 in
infer 关键字
用它取到函数返回值的类型方便之后使用。
内置工具
1. Required
2. Partial
3. Exclude
Exclude<T,U>
从 T 可分配给的类型中排除 U4. Extract
Extract<T,U>
从 T 中提取出 U。适用于并集类型5. Readonly
6. Pick
Pick<T,K>
Pick 能够帮助我们从传入的属性中摘取某些返回7. Omit
Omit<K,T>
基于已经声明的类型进行属性剔除获得新类型8. Record
Record<K,T>
构造一个类型,该类型具有一组属性 K,每个属性的类型为 T。可用于将一个类型的属性映射为另一个类型。Record 后面的泛型就是对象键和值的类型。9. NonNullable
10. ReturnType
11. Parameters
类型保护
typeof 类型保护
in关键字
instanceof 类型保护
自定义类型保护
例如下面的例子 value is object就会认为如果函数返回 true 那么定义的 value 就是 object 类型
tsconfig.json
tsconfig.json
tsconfig.json 的作用
重要字段
compilerOptions 选项
默认index.d.ts设置
参考 https://tsejx.github.io/typescript-guidebook/syntax/advanced/type-guards#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B1%BB%E5%9E%8B%E4%BF%9D%E6%8A%A4
The text was updated successfully, but these errors were encountered: