ホームページ  >  記事  >  ウェブフロントエンド  >  タイプチャレンジのある TypeScript アドベンチャー – Day Pick

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-10 06:26:29460ブラウズ

皆さん、こんにちは。
TypeScript をさらに深く掘り下げるために、型チャレンジに取り組んでいます。

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

- 挑戦 -

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

type TodoPreview = MyPick<Todo, 'title' | 'completed'>

const todo: TodoPreview = {
    title: 'Clean room',
    completed: false,
}

組み込みの Pick ジェネリックを使用せずに実装します。
T からプロパティ K のセットを選択して型を構築します。

- 説明 -

課題は、TypeScript が標準ユーティリティとして提供する独自のバージョンの Pick ユーティリティ タイプを作成することです。

- 私の解決策 -

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

type MyPick<T, U extends keyof T> = {
  [k in U]: T[k];
};

type TodoPreview = MyPick<Todo, "title" | "completed">;

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

コーディングを楽しんでください☀️

以上がタイプチャレンジのある TypeScript アドベンチャー – Day Pickの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。