Into the Typescript 3
8714 ワード
高度なタイプ
ユーティリティタイプ
ユーティリティタイプは、定義したタイプを少し変更できる良いタイプ構文です.ユーティリティタイプを使用すると、より簡潔な構文でタイプを定義できます.
特定のタイプの部分集合のみをタイプとして使用したい場合.
interface Address {
email: string;
address: string;
}
type MayHaveEmail = Partial<Address>;
const me: MayHaveEmail = {}; // 가능
const you: MayHaveEmail = { email: '[email protected]' }; // 가능
partialを使用しない場合、optialパラメータを使用するとコードが重複します.interface UpdateProduct {
id?: number;
name?: string;
price?: number;
brand?: string;
}
タイプのいくつかの属性のみをタイプとして使用したい場合.
interface Beverage{
name: string;
price: number;
}
const gatorade : Pick<Beverage, 'name'> = {
name : 'gatorade',
}
ピックとは逆に、いくつかのタイプを削除したい場合は、それを使用します.
interface Device {
name: string;
company : string;
price : number;
place: string;
}
const samsung: Omit<Device, 'place'|'price'> = {
name: '갤럭시S20',
company: '삼성'
}
マッピングのタイプ
これはJavaScriptのmap関数と似た原理で,タイプにマッピングを適用することでタイプを変える方式である.
マッピングタイプは次の形式で作成する必要があります.
{ [ P in K ] : T }
{ [ P in K ] ? : T }
{ readonly [ P in K ] : T }
{ readonly [ P in K ] ? : T }
キー値ごとに数値のあるオブジェクトを作成する場合は、次のように作成できます.type stocks = 'APPL'|'TSLA'|'MSFT';
type StockPrice = {[K in stocks]: number};
const PriceInfo : StockPrice = {
'APPL': 119,
'TSLA': 654,
'MSFT': 230,
}
Reference
この問題について(Into the Typescript 3), 我々は、より多くの情報をここで見つけました https://velog.io/@wook2pp/Into-the-Typescript-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol