跳到主要内容

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>;

Usernameemail 属性都是可选的。新定义的 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)