TypeScript 型の課題集
TypeScript のチューリング完全な型システムの力で
高品質な型は潜在的なバグを回避しつつ、プロジェクトの保守性を向上させるのに役立ちます。
TypeScriptには ts-toolbelt, utility-types, simplytyped など優れた型ユーティリティライブラリがあり、私たちは多くの後押しを得ているはずです。
このプロジェクトは、型システムがどのように動作するのかを理解したり、独自の型ユーティリティを書いたり、課題へのチャレンジを楽しむことをサポートします。また、実際の業務で直面した問題を質問したり、その答えを得られるコミュニティを作りたいと考えています。 - そこでの問題が課題集に追加されるかもしれません!
以下のバッジをクリックすると、課題の詳細が表示されます。
By Plain Text
- 4・Pick
- 7・Readonly
- 11・Tuple to Object
- 14・First of Array
- 18・Length of Tuple
- 43・Exclude
- 189・Awaited
- 268・If
- 533・Concat
- 898・Includes
- 3057・Push
- 3060・Unshift
- 3312・Parameters
- 2・Get Return Type
- 3・Omit
- 8・Readonly 2
- 9・Deep Readonly
- 10・Tuple to Union
- 12・Chainable Options
- 15・Last of Array
- 16・Pop
- 20・Promise.all
- 62・Type Lookup
- 106・Trim Left
- 108・Trim
- 110・Capitalize
- 116・Replace
- 119・ReplaceAll
- 191・Append Argument
- 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・Fibonacci Sequence
- 4260・文字の組み合わせ
- 4425・Greater Than
- 4471・Zip
- 4484・IsTuple
- 4499・Chunk
- 4518・Fill
- 4803・Trim Right
- 5117・Without
- 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・GetMiddleElement
- 9898・Appear only once
- 9989・Count Element Number To Object
- 10969・Integer
- 16259・ToPrimitive
- 17973・DeepMutable
- 18142・All
- 18220・Filter
- 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
- 6・Simple Vue
- 17・Currying 1
- 55・Union to Intersection
- 57・Get Required
- 59・Get Optional
- 89・Required Keys
- 90・Optional Keys
- 112・Capitalize Words
- 114・CamelCase
- 147・C-printf Parser
- 213・Vue Basic Props
- 223・IsAny
- 270・Typed Get
- 300・String to Number
- 399・Tuple Filter
- 472・Tuple to Enum Object
- 545・printf
- 553・Deep object to unique
- 651・Length of String 2
- 730・Union to Tuple
- 847・String Join
- 956・DeepPick
- 1290・Pinia
- 1383・Camelize
- 2059・Drop String
- 2822・Split
- 2828・ClassPublicKeys
- 2857・IsRequiredKey
- 2949・ObjectFromEntries
- 4037・IsPalindrome
- 5181・Mutable Keys
- 5423・Intersection
- 6141・Binary to Decimal
- 7258・Object Key Paths
- 8804・Two Sum
- 9155・ValidDate
- 9160・Assign
- 9384・Maximum
- 9775・Capitalize Nest Object Keys
- 13580・Replace Union
- 14080・FizzBuzz
- 14188・Run-length encoding
- 15260・Tree path array
- 19458・SnakeCase
- 25747・IsNegativeNumber
- 28143・OptionalUndefined
✨ 今後の課題
様々な方法でこのプロジェクトに貢献できます。
例:
- 自分の解答を共有する
- 新しい課題を提案する
- 既存の課題にテストケースを追加する
- 問題の解決方法に関する学習資料や、アイデアを提供する
- 実際のプロジェクトで直面した課題を、解決策があるかどうかに関係なく共有する - コミュニティが助けになるでしょう
- Issueの議論に参加して、他の人を助ける
- このプロジェクトのインフラに貢献する TODOs.md
Issue を開いてテンプレートを選択するだけです。是非チャレンジしてみて下さい!
このプロジェクトは、@hardfist と @MeCKodo と一緒に実際の業務で型の課題を解決したことから生まれました。また、このプロジェクトに初期から多くのフィードバックを通して貢献してくれた @sinoon に感謝します。
日本語のコミュニティの翻訳と維持について、@kawamataryoに感謝します。
MIT