instanceof演算子
instanceof演算子は、特定のオブジェクトがクラスのインスタンスかをチェックするJavaScriptの演算子です。
構文
jsオブジェクト instanceofクラス
jsオブジェクト instanceofクラス
引数
- オブジェクト: 検査するオブジェクトです。
- クラス: 検査対象のクラス名です。
例
tsclassClassA {}classClassB {}consta = newClassA ();console .log (a instanceofClassA );console .log (a instanceofClassB );
tsclassClassA {}classClassB {}consta = newClassA ();console .log (a instanceofClassA );console .log (a instanceofClassB );
継承とinstanceof
instanceofは継承関係をチェックすることもできます。たとえば、次のようにChildクラスのインスタンスがParentクラスのインスタンスかをチェックすることができます。
tsclassParent {}classChild extendsParent {}constchild = newChild ();console .log (child instanceofParent );
tsclassParent {}classChild extendsParent {}constchild = newChild ();console .log (child instanceofParent );
instanceofの反転
instanceof演算子の結果を反転させる場合は、値 instanceof クラス名の句全体をカッコで囲った上で、否定演算子!を先頭につける必要があります。
tsif (!(myInstance instanceofMyClass )) {// myInstanceがMyClassではないときの処理}
tsif (!(myInstance instanceofMyClass )) {// myInstanceがMyClassではないときの処理}
抽象クラスとinstanceof
TypeScriptには抽象クラスがあります。instanceof演算子は抽象クラスについても使うことができます。
tsabstract classAbstractClass {}classConcreteClass extendsAbstractClass {}constobj = newConcreteClass ();console .log (obj instanceofAbstractClass );
tsabstract classAbstractClass {}classConcreteClass extendsAbstractClass {}constobj = newConcreteClass ();console .log (obj instanceofAbstractClass );