Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~
在实现Pick这道题目的过程中运用到的知识点如下:
如图所示我们需要设计一个通用类型工具MyPick来支持从接口Todo中获取到title或completed属性并组成一个新的类型。 题目解答: 测试用例:
/* _____________ 测试用例 _____________ */
// 完整测试用例可见 type-challenges项目,点击题目链接可转到
import { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<Expected1, MyPick<Todo, 'title'>>>,
Expect<Equal<Expected2, MyPick<Todo, 'title' | 'completed'>>>,
// @ts-expect-error
MyPick<Todo, 'title' | 'completed' | 'invalid'>,
]
复制代码
/* _____________ 答案 _____________ */
type MyPick<T, K extends keyof T> = {
[key in K]: T[key]
}
复制代码
接下来的一题是:【类型挑战】实现 Readonly,难度⭐️,尽情期待!