TS常用工具类型

58 阅读1分钟
interface User {
    name:string;
    age:number;
    city:string;
}
//Partial<T>
//使用User类型的一部分,相当于给User类型的属性全部添加?可选
type UserPartial = Partial<User>;
const uPartial:UserPartial = { name:'xxx',age:10 }

//Required<T>
//与Partial<T>相反,所有属性都是必须的,相当于将User类型中的属性全部去掉?可选,变成必选
type UserRequired = Required<User>;
const uRequired: UserRequired = {
    name: 'xxx',
    age:10,
    city:'beijing'
}

//Pick<T,K>
//选取,只取User类型中指定的属性
type UserPick = Pick<User, 'name' | 'age'>;
const uPick: UserPick = {
    name: 'xxx',
    age:10
}

//Omit<T,K>
//排除忽略,从User类型中忽略几个属性
type UserOmit = Omit<User,'name' | 'age'>
const u:UserOmit = {city:'xxx'}

//Readonly<T>
//只读,将User类型中所有属性设置为只读,相当于给User类型中所有属性添加 readonly
type UserReadonly = Readonly<User>;
const uReadonly: UserReadonly = { name: 'xxx', age: 10, city: 'beijing' }
uReadonly.city = 'xxxx'