2017-11-30 10 views
-1

JavaScriptのサポートの抽象データ型ですか?JavaScriptは抽象データ型をサポートしていますか?

私はロットを検索しましたが、私は何の答えも見つかりませんでした。私はそれが正しいことをサポートしていないと思いますか?

+2

本質的に、しかし、いつでもそれをシミュレートすることができます。しかし、この質問の本当の点は何ですか? –

+0

私はjavascriptに関する小さな研究を行い、ポイントの1つはADTですが、私はリソースを見つけられませんでした! – Enaa

答えて

0

ありませんが、あなたはnew.targetを使用することによって(ES2015 +で)それをシミュレートすることができます。

class Abstract { 
 
    constructor(value) { 
 
    if (new.target === Abstract) { 
 
     throw new Error("Abstract is abstract"); 
 
    } 
 
    this.value = value; // Proof that if the check above is false, 
 
         // we *do* continue to set up the instance 
 
    } 
 
} 
 
class Concrete extends Abstract { 
 
} 
 
try { 
 
    const a = new Abstract(1); 
 
    console.log("Got Abstract instance, value = " + a.value); 
 
} catch (e1) { 
 
    console.error(e1); 
 
} 
 
try { 
 
    const c = new Concrete(2); 
 
    console.log("Got Concrete instance, value = " + c.value); 
 
} catch (e2) { 
 
    console.error(e2); 
 
}
悲しいことに、これが唯一のコードの行がインスタンス化の実行をしようと、エラーを生成しますそれが解析/コンパイルされたときではありません。

TypeScriptはタイプチェックなどの機能を追加したもので、abstract classesのコンセプトを持ち、TypeScriptのコンパイル段階でフラグが立てられます(TypeScriptがコンパイルされたときJavaScript);この情報は、瞬時にフィードバックするためのIDEなどでも利用できます。

関連する問題