我正在为WordPress wp.customize
API进行输入。但是,我遇到了一个麻烦,而且不知道如何声明顶层导出。
问题如下:
wp.customize
扩展了一个名为Values
的类,该类在“模块”中定义。最重要的是,该类具有呼叫签名(因为它实际上不是打字稿类,而是无数可怕的JS hacks)。因此,您需要能够致电wp.customize()
wp.customize
具有成员变量和函数。因此,这些内容必须易于访问,例如wp.customize.get()
wp.customize
还包含诸如Setting
之类的类和类型,因此您可以这样做function xxx (a: wp.customize.Setting){
我不知道如何同时完成所有这些操作。我不是该库的作者,所以我无法更改它,我只想为其创建类型。我所做的是:
// index.d.ts
import {Customize} from './Customize';
declare const customize: Customize;
export = customize;
// Customize.d.ts
export interface Customize extends Values {
Setting: typeof Setting;
get(): any;
}
理想情况下,我希望以与实现其他WordPress键入相同的方式导入键入,但这不是严格必需的:
declare const wp: {
customize: typeof import("wordpress__customize");
};
但是,我不能使用诸如wp.customize.Setting
之类的类型。我得到error TS2503: Cannot find namespace 'wp'.