プロパティの削除
delete演算子を使用する。
delete object.property
delete object['property']
使用例:
const Pesron = {
firstName: 'Taro',
lastName: 'Yamada'
};
console.log(Person.firstName);
// expected output: "Taro"
delete Person.firstName;
console.log(Person.firstName);
// expected output: undefined
ただTypeScriptの場合、delete演算子を使うと怒られる。
const Pesron = {
firstName: 'Taro',
lastName: 'Yamada'
};
delete Person.firstName;
//以下のエラーメッセージが出る。
//The operand of a 'delete' operator must be optional
「deleteする対象はoptionalじゃなきゃダメよー」とのこと。つまり、今の状態ではPerson
オブジェクトのfirstName
プロパティは必須であり、消すことができない。
そのため、firstName
プロパティはあってもなくてもいいよと明記する必要がある。プロパティ名の末尾に?(クエスチョンマーク)を追加することでそのプロパティは必須ではなくなる。
const Person: {
firstName?: string,
lastName: string
} = {
firstName:'Taro',
lastName:'Yamada'
};
delete Person.firstName;
TypeScriptに慣れない間は、明示的に型を記載した方がよいかも。。。
まとめ
演算子といえば、+(プラス)とかー(マイナス)のイメージが強かったため、delete演算子なんてものがあるのかと驚きました。そう考えたら、typeofとかも演算子の一種になるのは納得です。
コメント