type-challenges /type-challenges

Collection of TypeScript type challenges with online judge

★ 48,560⑂ 5,249
TypeScriptCreated 2020-07-23tsch.js.org/
48,560
stars
+0
5,249
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

TypeScript 类型体操姿势合集


  
    
  
  
    
  





  English | 简体中文 | 日本語 | 한국어 | Português




 介绍


  众所周知,TypeScript 拥有一个图灵完备的类型系统


高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞。市面上也已经有许多优秀的类型工具库,像是 ts-toolbelt, utility-types, SimplyTyped 等等。我们也从这些项目中获取了许多灵感。

本项目意在于让你更好的了解 TS 的类型系统,编写你自己的类型工具,或者只是单纯的享受挑战的乐趣!我们同时希望可以建立一个社区,在这里你可以提出你在实际环境中遇到的问题,或者帮助他人解答疑惑 - 这些问题也可能被选中成为题库的一部分!

 题库

 点击下方按钮查看题目内容

 注: 题目在严格模式下测试。




                                                                                                                                                                                              按标签                                                                                                                                                                                                                                                                            通过纯文本热身 (1)13・Hello World 简单 (13)4・实现 Pick 7・对象属性只读 11・元组转换为对象 14・第一个元素 18・获取元组长度 43・实现 Exclude 189・Awaited 268・If 533・Concat 898・Includes 3057・Push 3060・Unshift 3312・Parameters 中等 (104)2・获取函数返回类型 3・实现 Omit 8・对象部分属性只读 9・对象属性只读(递归) 10・元组转合集 12・可串联构造器 15・最后一个元素 16・排除最后一项 20・Promise.all 62・查找类型 106・去除左侧空白 108・去除两端空白字符 110・Capitalize 116・Replace 119・ReplaceAll 191・追加参数 296・Permutation 298・Length of String 459・Flatten 527・Append to object 529・Absolute 531・String to Union 599・Merge 612・KebabCase 645・Diff 949・AnyOf 1042・IsNever 1097・IsUnion 1130・ReplaceKeys 1367・Remove Index Signature 1978・Percentage Parser 2070・Drop Char 2257・MinusOne 2595・PickByType 2688・StartsWith 2693・EndsWith 2757・PartialByKeys 2759・RequiredByKeys 2793・Mutable 2852・OmitByType 2946・ObjectEntries 3062・Shift 3188・Tuple to Nested Object 3192・Reverse 3196・Flip Arguments 3243・FlattenDepth 3326・BEM style string 3376・InorderTraversal 4179・Flip 4182・斐波那契序列 4260・AllCombinations 4425・Greater Than 4471・Zip 4484・IsTuple 4499・Chunk 4518・Fill 4803・Trim Right 5117・去除数组指定元素 5140・Trunc 5153・IndexOf 5310・Join 5317・LastIndexOf 5360・Unique 5821・MapTypes 7544・Construct Tuple 8640・Number Range 8767・Combination 8987・Subsequence 9142・CheckRepeatedChars 9286・FirstUniqueCharIndex 9616・Parse URL Params 9896・获取数组的中间元素 9898・找出目标数组中只出现过一次的元素 9989・统计数组中的元素个数 10969・整数 16259・将类型为字面类型(标签类型)的属性,转换为基本类型。 17973・DeepMutable 18142・All 18220・Filter 19749・IsEqual 21104・FindAll 21106・组合键类型 Combination key type 21220・Permutations of Tuple 25170・Replace First 25270・Transpose 26401・JSON Schema to TypeScript 27133・Square 27152・Triangular number 27862・CartesianProduct 27932・MergeAll 27958・CheckRepeatedTuple 28333・Public Type 29650・ExtractToObject 29785・Deep Omit 30301・IsOdd 30430・Tower of hanoi 30958・Pascal's triangle 30970・IsFixedStringLiteralType 34007・Compare Array Length 34857・Defined Partial Record 35045・Longest Common Prefix 35191・Trace 35252・IsAlphabet 35991・MyUppercase 困难 (55)6・简单的 Vue 类型 17・柯里化 1 55・联合类型转化为交叉类型 57・获得必需的属性 59・获得可选属性 89・必需的键 90・可选类型的键 112・Capitalize Words 114・CamelCase 147・C-printf Parser 213・Vue Basic Props

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON