TypeScript中特殊的常用类型
  在TypeScript中,Record<string, any> 是一种特殊且常用的类型,用于表示键为字符串类型、值为任意类型的对象。除了这种类型外,TypeScript还提供了其他一些比较特殊的类型,它们在不同的场景下发挥着重要作用。以下是一些TypeScript中比较特殊的类型:
- Partial<T>:
- 作用:将T中的所有属性变为可选的。
- 示例:type PartialPerson = Partial<{ name: string; age: number; }>;相当于{ name?: string; age?: number; }。
 
- Required<T>:
- 作用:将T中的所有属性变为必需的。
- 示例:与Partial<T>相反,如果有一个可选属性的类型,Required<T>可以将其所有属性变为必需。
 
- Pick<T, K>:
- 作用:从T中选取出所有K中指定的属性。
- 示例:type Name = Pick<{ name: string; age: number; }, "name">;相当于{ name: string; }。
 
- Omit<T, K>:
- 作用:从T中排除所有K中指定的属性。
- 示例:type Age = Omit<{ name: string; age: number; }, "name">;相当于{ age: number; }。
 
- Readonly<T>:
- 作用:将T中的所有属性变为只读。
- 示例:type ReadonlyPerson = Readonly<{ name: string; age: number; }>;之后,尝试修改ReadonlyPerson对象的属性将会导致编译错误。
 
- Record<K, T>:
- 除了之前提到的Record<string, any>外,Record类型还可以用于更广泛的场景,通过指定不同的键类型K和值类型T来创建不同的索引类型。
- 示例:Record<number, boolean>表示一个对象的键为数字类型,值为布尔类型。
 
- 除了之前提到的
- Exclude<T, U>:
- 作用:从T中排除所有可以赋值给U的类型。
- 示例:type T0 = Exclude<"a" | "b" | "c", "a">;相当于"b" | "c"。
 
- Extract<T, U>:
- 作用:提取T中可以赋值给U的类型。
- 示例:与Exclude相反,type T1 = Extract<"a" | "b" | "c", "a" | "f">;相当于"a"。
 
- NonNullable<T>:
- 作用:从T中排除null和undefined。
- 示例:type T2 = NonNullable<string | null | undefined>;相当于string。
 
- Parameters<T>:
- 作用:获取函数类型T的参数类型组成的元组。
- 示例:type T3 = Parameters<(x: number, y: string) => void>;相当于[number, string]。
 
- ConstructorParameters<T>:
- 作用:获取构造函数类型T的参数类型组成的元组。
- 示例:用于类构造函数参数的类型提取。
 
- ReturnType<T>:
- 作用:获取函数类型T的返回类型。
- 示例:type T4 = ReturnType<() => string>;相当于string。
 
这些特殊类型在TypeScript中非常有用,它们提供了强大的类型操作能力,使得开发者能够更精确地定义和操作类型。
一个小前端
 我是一个小前端
  
 zs.duan@qq.com
 
 
 
 重庆市沙坪坝
 
 
我的标签
 
            小程序
        
            harmonyOS
        
            HTML
        
            微信小程序
        
            javaSrcipt
        
            typeSrcipt
        
            vue
        
            uniapp
        
            nodejs
        
            react
        
            防篡改
        
            nginx
        
            mysql
        
            请求加解密
        

还没有人评论 快来占位置吧