// 相当于: type PickUser = { id: number; age: number; } type PickUser = Pick ```">
极客时间对于推广渠道会有返利优惠,比如山月在极客时间买了一门课,再把课程分享给好友购买,这时极客时间会向山月返利20元左右。
而我现在做了一个返利平台,你可以在上边通过山月的链接购买课程,此时极客时间会向我返利。为了共同学习,而你可以添加我的微信 (shanyue94),我将把极客时间给我的返利发一个红包全部返给你

# 在 Typescript 中如何实现类型标记 Pick 与 Omit

更多描述

有以下测试用例

interface User {
  id: number;
  age: number;
  name: string;
};

// 相当于: type PickUser = { age: number; name: string; }
type OmitUser = Omit<User, "id">

// 相当于: type PickUser = { id: number; age: number; }
type PickUser = Pick<User, "id" | "age">

Issue

欢迎在 Issue 中交流与讨论: Issue 695 (opens new window)

type Pick<T, K extends keyof T> = {
  [P in K]: T[P];
};

type Exclude<T, U> = T extends U ? never : T;

type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
interface User {
  id: number;
  age: number;
  name: string;
};

// 相当于: type PickUser = { age: number; name: string; }
type OmitUser = Omit<User, "id">

// 相当于: type PickUser = { id: number; age: number; }
type PickUser = Pick<User, "id" | "age">

关于山月

我的项目:
我的微信:shanyue94,欢迎交流
Last Updated: 7/31/2021, 3:04:10 PM