[TypeScript] 任意の型から特定のプロパティを削除した型を作成する
作成日: 2021年08月20日
Utility Types の Omit<Type, Keys>
を使用すると、Type
で指定した型から Keys
で指定したプロパティを削除することができます。下記の例では、User
型から name
プロパティを削除した User2
という型を作成し、削除されているか確認するために name
プロパティに値をセットしています。このコードを実行するとエラーとなります。
export class User {
public name: string;
public age: number;
constructor() {
this.name = '';
this.age = 0;
}
}
type User2 = Omit<User, 'name'>
const user2: User2 = {
name: 'yamada',
}
実行結果は下記のようなエラーとなります。
error TS2322: Type '{ name: string; }' is not assignable to type 'User2'.
Object literal may only specify known properties, and 'name' does not exist in type 'User2'.
Omit<Type, Keys>
のドキュメント
https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys