多多读书
329 字
2 分钟
难住了,我不会TypeScript

type-challenges 是一个由 Anthony Fu 发起和维护的创新项目,目前 Github 上拥有 37k+ star。这个项目汇聚并提供一系列精彩的 TypeScript 编程挑战,包含从基础到高级的各种难度级别的题目,最高难度达到了恐怖的地狱级别。

今天来尝试挑战一下,先从最简单的热身开始。

开始挑战仅需点击接受挑战按钮,之后你将被引导至 Playground 界面。你需要根据给定要求填写正确的类型定义,一旦你的解答通过了测试,就意味着挑战成功。

热身任务相对简单,只需将类型any更改为string。接下来是简单难度的第一个任务:创建一个自定义的 Pick 类型。示例代码如下:

interface Todo {
  title: string
  description: string
  completed: boolean
}

type TodoPreview = MyPick<Todo, 'title' | 'completed'>

const todo: TodoPreview = {
  title: 'Clean room',
  completed: false,
}

/* 你的代码 */
type MyPick<T, K> = any

虽然标记为简单,但这个任务仍具有一定的挑战性,没有熟练掌握 TypeScript 使用估计解不出来。结果如下,看看你做出来了吗?

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

快去刷题挑战吧,相信通关之后你也是 TypeScript 高手了。入口:https://github.com/type-challenges/type-challenges

难住了,我不会TypeScript
https://fuwari.vercel.app/posts/20231127/
作者
我也困了
发布于
2023-11-27
许可协议
CC BY-NC-SA 4.0