Javascript 声明既是类型又是值的typescript模块

Javascript 声明既是类型又是值的typescript模块,javascript,wordpress,typescript,typescript-typings,Javascript,Wordpress,Typescript,Typescript Typings,我正在为WordPresswp.customizeAPI打字。然而,我遇到了一个障碍,不知道如何申报顶级出口 问题如下: wp.customize扩展了一个名为Values的类,该类在“模块”中定义。除此之外,这个类还有一个调用签名(因为它实际上不是一个typescript类,而是无数可怕的JS黑客)。因此,您需要能够调用wp.customize() wp.customize具有成员变量和函数。因此这些需要是可访问的,例如,wp.customize.get() wp.customize还包含类

我正在为WordPress
wp.customize
API打字。然而,我遇到了一个障碍,不知道如何申报顶级出口

问题如下:

  • wp.customize
    扩展了一个名为
    Values
    的类,该类在“模块”中定义。除此之外,这个类还有一个调用签名(因为它实际上不是一个typescript类,而是无数可怕的JS黑客)。因此,您需要能够调用
    wp.customize()
  • wp.customize
    具有成员变量和函数。因此这些需要是可访问的,例如,
    wp.customize.get()
  • wp.customize
    还包含类和类型,如
    设置
    ,因此您需要能够
我不知道如何同时做这些。我不是图书馆的作者,所以我不能改变它,我只是想为它创建打字。我所做的是:

// 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
。我收到
错误TS2503:找不到命名空间“wp”。

declare const wp: {
  customize: typeof import("wordpress__customize");
};