Private fields in-in
メソッドの引数に関して、特定のプライベートフィールドを持つかどうか in
演算子で判定できるようになった。
この機能がない場合、try...catchで例外を使った冗長な書き方を使うしかない。もっとシンプルに書きたいというモチベーションで提案された。
class Parent {
#type = "dummy";
static isFamily(obj) {
// もっとシンプルに書きたい
try {
obj.#type;
} catch() {
return false;
}
return true;
}
}
Example
class Parent {
#type = "dummy";
static isFamily(obj) {
return #type in obj;
}
}
console.log(Parent.isFamily(new Parent())); // true
// 継承した子クラスも判定できる
class Child extends Parent {}
console.log(Parent.isFamily(new Child()));
Link
最終更新