本文主要是介绍TS类型体操-简单-实现pick,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 问题描述
- 举例
- 实现
问题描述
不使用 Pick<T, K> ,实现 TS 内置的 Pick<T, K> 的功能。
从类型T
中选出符合K
的属性,构造一个新的类型。
举例
interface Todo {title: stringdescription: stringcompleted: boolean
}type TodoPreview = MyPick<Todo, 'title' | 'completed'>const todo: TodoPreview = {title: 'Clean room',completed: false,
}
实现
// TypeScript 中,我们可以使用关键字 extends 来进行泛型约束。extends 关键字用于约束泛型类型参数,以确保其是指定类型或其子类型。
// extends 在这里是 约束、限制的含义,不是继承
// keyof 是把 后面 的 键 提取出来组成一个 联合类型
// in 是遍历/*** 1、K 增加 泛型约束, 比如,下面有 name、age、height、如果你写一个不在这里面的就会报错* 2、in 遍历, 冒号右侧,拿到 键 value 类型*/
type MyPick<T, K extends keyof T> = {[P in K]: T[P];
};type Case2 = MyPick<{ name: string; age: number; height: number },"name" | "age"
>;
这里就会自动提示
如果填写不符合,那么就会
报错
这篇关于TS类型体操-简单-实现pick的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!