Omit<T, Keys>
Omit<T, Keys>
は、オブジェクトの型T
からKeys
で指定したプロパティを除いたobject型を返すユーティリティ型です。
Omit<T, Keys>の型引数
T
型引数T
にはオブジェクトの型を渡します。
Keys
Keys
には引数T
のプロパティキーを指定します。ここで指定したプロパティキーと一致するプロパティをT
から除去します。
Omitの使用例
ts
typeUser = {surname : string;middleName ?: string;givenName : string;age : number;address ?: string;nationality : string;createdAt : string;updatedAt : string;};typeOptional = "age" | "address" | "nationality" | "createdAt" | "updatedAt";typePerson =Omit <User ,Optional >;
ts
typeUser = {surname : string;middleName ?: string;givenName : string;age : number;address ?: string;nationality : string;createdAt : string;updatedAt : string;};typeOptional = "age" | "address" | "nationality" | "createdAt" | "updatedAt";typePerson =Omit <User ,Optional >;
上のPerson
型は次の型と同じになります。
ts
typePerson = {surname : string;middleName ?: string;givenName : string;};
ts
typePerson = {surname : string;middleName ?: string;givenName : string;};
Omitの注意点
Omit<T, Keys>
のKeys
にT
には無いプロパティキーを指定しても、TypeScriptコンパイラーは指摘しません。たとえば、Keys
にタイポがあっても検出できないので注意が必要です。
ts
typeUser = {surname : string;middleName ?: string;givenName : string;age : number;address ?: string;nationality : string;createdAt : string;updatedAt : string;};typeOptional = "createdat" | "updatedat" | "age" | "address" | "nationality";typePerson =Omit <User ,Optional >;// このPersonは下の型になる
ts
typeUser = {surname : string;middleName ?: string;givenName : string;age : number;address ?: string;nationality : string;createdAt : string;updatedAt : string;};typeOptional = "createdat" | "updatedat" | "age" | "address" | "nationality";typePerson =Omit <User ,Optional >;// このPersonは下の型になる
User
のcreatedAt
、updatedAt
のAt
は大文字から始まりますが、これに気づかずに小文字で書いてしまったため、Omit
の結果はcreatedAt
とupdatedAt
を含んでしまいます。
関連情報
📄️ Pick<T, Keys>
任意のプロパティだけを持つオブジェクト型を作る