インスタンスを新規に作成することはできません。 new instanceofAudioContext()
は有効なものではありません。
あなたのインターフェイスは、使用しようとしているAPIと一致しません。ブラウザでwindow.AudioContext
はAudioContext
のインスタンスではありません。それはクラス定義メソッド、typeof AudioContext
です。 Function
でも同じ問題が発生します。
インターフェイスを維持したい場合は、この
interface Window {
AudioContext: typeof AudioContext;
webkitAudioContext: typeof AudioContext
}
declare var window: Window;
var AudioContextDecl = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
それとも、
var AudioContextDecl = <typeof AudioContext>(window.AudioContext || window.webkitAudioContext);
var audioCtx = new AudioContext();
あるいは単にany
を使用し、インタフェースを使用しない場合を試してみてください。それはすべて同じことに変わります。
汎用インターフェースを必要としますか? – VJAI
@マーク、いいえ、他のタイプにも役立つと思っています。あなたは安全に 'interface Constructable {new():AudioContext;で置き換えることができます。 } '。あるいは、これを 'ConstructableAudioContext'に名前変更したいのですが、これはもはや一般的でなく、' AudioContext'に特有なものではありません。 – haim770