Required
Required
工具类型用来创建一个新的类型,它将已有类型的所有属性变成必需的。这意味着原有类型的所有可选属性在新的类型中都将成为必需属性。它和 Partial
是相反的。
句法:
type NewType = Required<ExistingType>;
这里的 ExistingType
代表了已有的类型。
例子:
// 示例用的是 interface
interface User {
id: number;
name?: string; // optional
email?: string; // optional
}
// type 也是支持的
/*
type User = {
id: number;
name?: string;
email?: string;
}
*/
type RequiredUser = Required<User>;
在 User
中 name
和 email
属性都是可选的。新定义的 RequiredUser
则在 User
的基础上把所有属性都变成必需属性,等同于:
// Equivalent to:
type RequiredUser = {
id: number;
name: string;
email: string;
};
用法:
const user1: RequiredUser = {
id: 1,
name: "ss",
email: "[email protected]",
};
// user1 正常运行
const user2: RequiredUser = {
id: 1,
};
// user2 报错:Type '{ id: number; }' is missing the following properties from type 'Required<User>': name, email(2739)