こんにちは、みんな。
私は TypeScript をさらに深く掘り下げるために、型の課題に取り組んでいます。
今日は、Pick について学んだことを共有したいと思います。
interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPickconst todo: TodoPreview = { title: 'Clean room', completed: false, }
組み込みの Pick ジェネリックを使用せずに実装します。
T からプロパティ K のセットを選択して型を構築します。
課題は、TypeScript が標準ユーティリティとして提供する独自のバージョンの Pick ユーティリティ タイプを作成することです。
interface Todo { title: string; description: string; completed: boolean; } type MyPick= { [k in U]: T[k]; }; type TodoPreview = MyPick ; const todo: TodoPreview = { title: "Clean room", completed: false, };
一行ずつ説明しましょう。
最初の行で、MyPick は 2 つの引数を受け取ります: T と U extends keyof T.
T:すべてのプロパティを含む基本型。
U extends keyof T:出力タイプに含めるプロパティを指定します。
keyofについて
拡張について
2行目
指定された引数から指定されたプロパティのみを抽出する新しい型を作成します。
[k in U]などのマップされた型について
以下のように、タイトルのみを指定することでTodoから説明を除いた新しいタイプを作成し、MyPickに完成させます。
ハッピーコーディング☀️
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3