You can't new up an instance. new instanceofAudioContext()
isn't a valid thing to do.
Your interface doesn't match the API you're trying to use. In the browser, window.AudioContext
isn't a instance of AudioContext
. It's the class definition method, typeof AudioContext
. You'll also have the same problem with the Function
.
If you'd still like to keep your interface. Try this
interface Window {
AudioContext: typeof AudioContext;
webkitAudioContext: typeof AudioContext
}
declare var window: Window;
var AudioContextDecl = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
Or if you don't want the interface,
var AudioContextDecl = <typeof AudioContext>(window.AudioContext || window.webkitAudioContext);
var audioCtx = new AudioContext();
Or even just use any
. It all transpiles to the same thing.