前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript 实用程序类型:选择和省略

TypeScript 实用程序类型:选择和省略

作者头像
海拥
发布2022-04-13 17:26:21
6490
发布2022-04-13 17:26:21
举报
文章被收录于专栏:全栈技术全栈技术

我们将在本文中深入探讨 PickOmit

它们都用于创建一个新类型,只有原始类型的一组选项。

但是,它们的工作方式略有不同。我们来看看高层的区别。

Pick只拿你定义你想要的物品 Omit将选择你未定义的所有项目以省略 所以两者的结果非常相似,这取决于你的需要你可能喜欢哪一个。

TypeScript Pick 实用程序类型 我使用我之前使用的相同示例:用户界面。

代码语言:javascript
复制
interface User {
  id?: number;
  firstname: string;
  lastname?: string;
  age: number;
  telephone?: number;
  twitter?: string;
}

现在假设我们想要一个单独的类型,它只能传递全名,所以它不需要任何其他字段?

我们可以定义一个新类型,我们可以在其中定义我们想要使用的字段。

代码语言:javascript
复制
type UserFullname = Pick<User, 'firstname' | 'lastname'>;

const userName: UserFullname = {
  firstname: 'Chris',
  lastname: 'Bongers',
};

我们的用户名变量现在用于确保只设置这两个字段。 你可能已经发现了分隔符|。它用作分隔符,它将选择两个字段。

在使用不同的返回类型时,你可能经常需要这种类型的操作,你可能希望排除特定的字段。但是你也可以考虑仅从更大对象中获取特定字段的子组件。

TypeScript Omit 实用程序类型与Pick类型一样,Omit可用于修改现有接口或类型。然而,这个工作反过来。

它将删除你定义的字段。当我们想创建一个用户时,我们想从我们的用户对象中删除该字段id。

代码语言:javascript
复制
type UserPost = Omit<User, 'id'>;

const updateUser: UserPost = {
  firstname: 'Chris',
  lastname: 'Bongers',
  age: 32,
};

即使 ourid已经是一个条件字段,它现在已经完全从类型中删除了,所以我们甚至不能传递它!

在这里插入图片描述
在这里插入图片描述

这就是下一篇文章的用例Pick和用例Omit。我们将更详细地了解它们组合时的强大程度。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档