「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > タイプチャレンジのある TypeScript アドベンチャー – Day Pick

タイプチャレンジのある TypeScript アドベンチャー – Day Pick

2024 年 11 月 3 日に公開
ブラウズ:987

こんにちは、みんな。
私は TypeScript をさらに深く掘り下げるために、型の課題に取り組んでいます。

今日は、Pick について学んだことを共有したいと思います。

- 挑戦 -

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

type TodoPreview = MyPick

const 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.

TypeScript Adventures with type-challenges – Day Pick

T:すべてのプロパティを含む基本型。
U extends keyof T:出力タイプに含めるプロパティを指定します。

keyofについて
拡張について

2行目
指定された引数から指定されたプロパティのみを抽出する新しい型を作成します。

TypeScript Adventures with type-challenges – Day Pick

[k in U]などのマップされた型について

以下のように、タイトルのみを指定することでTodoから説明を除いた新しいタイプを作成し、MyPickに完成させます。

TypeScript Adventures with type-challenges – Day Pick

ハッピーコーディング☀️

リリースステートメント この記事は次の場所に転載されています: https://dev.to/noah-00/typescript-adventures-with-type-challenges-day-1-pick-5fdj?1 権利侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3