TypeScript 类型体操姿势合集
众所周知,TypeScript 拥有一个图灵完备的类型系统
高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞。市面上也已经有许多优秀的类型工具库,像是 ts-toolbelt, utility-types, SimplyTyped 等等。我们也从这些项目中获取了许多灵感。
本项目意在于让你更好的了解 TS 的类型系统,编写你自己的类型工具,或者只是单纯的享受挑战的乐趣!我们同时希望可以建立一个社区,在这里你可以提出你在实际环境中遇到的问题,或者帮助他人解答疑惑 - 这些问题也可能被选中成为题库的一部分!
点击下方按钮查看题目内容
注: 题目在严格模式下测试。
通过纯文本
热身 (1)
简单 (13)
中等 (97)
困难 (47)
地狱 (15)
✨ 即将到来的新题目
🔥 在 TypeScript Playground 开始挑战
🚀 无需网络,在支持 TypeScript 的 IDE 或者文本编辑器中开始挑战
⚡️ 使用 VS Code 插件开始挑战
你可以通过如下几种方式参与贡献这个项目
开一个新的 Issue 并选择相应的模板即可,感谢参与!
💡 尽管你可以使用中文进行讨论,我们还是鼓励你尝试使用英文发起 Issue 与评论,这样可以让你的问题被更多人看到也可以帮助更多人。
你可以在本地生成这些题目,然后用你熟悉的任何支持 TypeScript 的 IDE 或者文本编辑器开始做题。
构建这些题目前,你需要安装好最新版的 Node.js 和 pnpm。
克隆此仓库后,运行下方命令行安装依赖:
pnpm install
然后,运行生成脚本:
pnpm generate
这将会提示你选择语言,然后你就可以在 ./playground
文件夹中找到生成的题目。
如果你想要在保留自己的答案的情况下获取题目的更新,可以运行:
pnpm generate --keep-changes
或者
pnpm generate -K
这个项目诞生于 @hardfist 和 @MeCKodo 两位朋友做的类型体操。同时也非常感谢 @sinoon 在项目初期提供了宝贵的反馈意见与参与的贡献。
MIT
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。