【ISSUE】[TypeScript]組み込みの型を使いこなす
2024年12月23日 8:40
組み込みの型について学んだので、備忘録として書いていきます。
TypeScriptでは、「mapped types」や「conditional types」により可能となった操作のうち、特に有用なものが、組み込み型として、標準ライブラリとして用意されています
Readonlyは、定義したオブジェクトのプロパティを全て読み取り専用にする機能です。
このように、「type T」に「Readonly」を付けると、中身のデータは読み取り専用となり、後からプロパティの内容を変更できなくすることができます。
これを使用することで、安全にデータを管理できるようになります。
Pick<T, K>は、Tという名前で定義したプロパティの中から、Kという名前のプロパティのみを残したオブジェクト型を表すことができます。
「type Q」を例にしてみると、「name」と「age」の二つのプロパティが設定されたオブジェクトにPickを設定し、第二引数に「age」を指定すると、「type Q」は、「age」のみを持つオブジェクト型として作られます。
また、二つ目の例にあるように、複数のプロパティを第二引数に設定することも可能です。
以下のように、オブジェクトを別で定義し、場面ごとで、取り出すプロパティを変更できるようにすることもできます。
同じようなプロパティを含むオブジェクトを複数使う場合に使えますね。
Partialは、全てのプロパティをオプショナルにすることができます。
Extract<T, U>は、Tに設定した構成要素のうち(普通はユニオン型)、Uの部分型であるもののみを抜き出して、新しいユニオン型を定義することができます。
Exclude<T, U>は、Extract<T, U>の逆で、Tに設定した構成要素のうち(普通はユニオン型)、Uの部分型であるもののみを取り除いた、新しいユニオン型を定義することができます。
組み込みの型を利用することで、コードの量を減らすとともに、可読性の高い型定義をすることができます。
積極的に活用して、簡潔な型定義をできるようにしましょう。
他にも色々な記事を書いているので、よければ読んでいってください、、、
https://qiita.com/hukuryo/items/97797a91d7e2ee0bcabc
https://qiita.com/hukuryo/items/2c07c52ff3386d5d75b9
https://qiita.com/hukuryo/items/ebeb26823f944f143b11
[cv:issue_marketplace_engineer]
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。