高端建设网站公司哪家好,泰达人才网招聘网,企业网站建设 新闻宣传,构建网站需要会什么文章目录 Omit 的词源词源分析词源历史 在 TypeScript 中的用法示例 Pick语法示例更复杂的示例使用 Pick 和其他类型组合实际应用场景 Omit vs Pick Omit 的词源
Omit 是一个英语词汇#xff0c;它的意思是“省略”或“遗漏”。现在让我们来看看这个词的词源。
词源分析
O-… 文章目录 Omit 的词源词源分析词源历史 在 TypeScript 中的用法示例 Pick语法示例更复杂的示例使用 Pick 和其他类型组合实际应用场景 Omit vs Pick Omit 的词源
Omit 是一个英语词汇它的意思是“省略”或“遗漏”。现在让我们来看看这个词的词源。
词源分析
O-: 这是一个拉丁语前缀表示“out of”或“from”。Mit-: 这部分来自于拉丁语词根 mittere意为“to send”或“to put”。-er: 这是一个动词词尾表示“to do”。
因此omit 的字面意思可以理解为“送出”或“放置出去”在英语中演变为“省略”或“遗漏”的意思。
词源历史
拉丁语: mittere 意为“to send”或“to put”。从这个根词派生出了许多英语词汇如 emit发出、commit提交等。中古英语: omit 最初出现在 15 世纪左右源自古法语 ommettre最终来源于拉丁语 omittre这是一个由 o- 和 mittere 组成的词意为“to leave out”或“to fail to do”。
在 TypeScript 中的用法
在 TypeScript 中OmitT, K 是一个实用类型用于从类型 T 中删除省略指定的属性 K。这与英语词汇 omit 的含义紧密相关即从一个对象类型中“省略”某些属性。
示例
假设我们有一个接口 Person
interface Person {name: string;age: number;email: string;
}如果我们想要创建一个新的类型 PersonWithoutEmail该类型与 Person 相同但不包含 email 属性我们可以使用 Omit 类型
type PersonWithoutEmail OmitPerson, email;在这个例子中PersonWithoutEmail 类型将包含 Person 中的所有属性除了 email 属性。
Pick
在 TypeScript 中PickT, K 是一个实用类型用于从类型 T 中选择一组属性 K并创建一个新的类型该类型仅包含这些被选择的属性及其类型。
语法
PickT, KT 是原始类型通常是一个接口或类型。K 是从 T 中选择的属性键的联合类型。
示例
假设我们有一个接口 Person
interface Person {name: string;age: number;address: string;phoneNumber: string;
}如果我们想要创建一个新的类型 ContactInfo该类型仅包含 name 和 address 属性我们可以使用 Pick 类型
type ContactInfo PickPerson, name | address;在这个例子中ContactInfo 类型将包含 name 和 address 属性而其他属性将被排除。
更复杂的示例
假设我们有一个更复杂的接口 User
interface User {id: number;name: string;email: string;password: string;roles: string[];settings: {theme: string;notifications: boolean;};
}我们想要创建一个新的类型 UserPublicInfo该类型仅包含 id、name 和 email 属性
type UserPublicInfo PickUser, id | name | email;现在 UserPublicInfo 类型将只包含 id、name 和 email 属性。
使用 Pick 和其他类型组合
Pick 类型可以与其他类型一起使用例如与 Omit、Partial、Required 等类型结合使用以创建更复杂的类型。
假设我们想要创建一个新的类型 UserWithSettings该类型包含 User 中的所有属性但 settings 属性是必需的即使在 User 中它是可选的
type UserWithRequiredSettings PickUser, Excludekeyof User, settings RequiredPickUser, settings;在这个例子中我们使用 Excludekeyof User, settings 来获取除了 settings 以外的所有属性键然后使用 Pick 来选择这些属性。接着我们使用 Required 类型来确保 settings 属性是必需的。
实际应用场景
Pick 类型在实际开发中非常有用尤其是在需要从一个大的接口中提取特定属性时。例如假设你有一个 API 接口需要向客户端返回用户信息的一部分
interface User {id: number;name: string;email: string;password: string;roles: string[];settings: {theme: string;notifications: boolean;};
}function getUserPublicInfo(user: User): PickUser, id | name | email {return {id: user.id,name: user.name,email: user.email,};
}在这个例子中getUserPublicInfo 函数返回一个新的对象该对象仅包含 id、name 和 email 属性这有助于保护敏感信息同时提供必要的用户信息。
Omit vs Pick
比较 目的 Omit用于从现有类型中排除某些属性。 Pick用于从现有类型中选择某些属性。 结果 Omit创建一个不包含指定属性的新类型。 Pick创建一个仅包含指定属性的新类型。 用法 Omit通常用于创建一个没有某些属性的新类型这在需要排除某些敏感数据或不需要的字段时很有用。 Pick通常用于创建一个包含特定属性的新类型这在需要精简对象或传递特定属性集时非常有用。