Typescript 2:如何添加到现有界面或类型?

时间:2016-09-21 04:11:19

标签: typescript interface

typescript 2中,window对象的类型为Window - 一个接口。

我的代码使用OfflineAudioContext,这是一个可通过打字稿不知道的window对象访问的类:

let offlineCtx = new window.OfflineAudioContext(2,44100*40,44100);
//TS Error: Property 'OfflineAudioContext' does not exist on type 'Window'

代码被转换并运行没有问题,但我想摆脱这个错误。是否可以在自定义Window中添加d.ts类型或以其他方式解决我的问题?

1 个答案:

答案 0 :(得分:1)

您可以向现有类型添加声明,这些声明包含在文档的Declaration Merging part中。

在您的情况下,您可以这样做:

type OfflineAudioContextConstructor {
    new (num1: number, num2: number, num3: number): OfflineAudioContext;
}

interface Window {
    OfflineAudioContext: OfflineAudioContextConstructor;
}