打字稿定义:如何在 class 中声明 class

Typescript definitions: how to declare class inside class

我有两个 javascript 类,一个叫 AmazingMultiplier,一个叫 AmazingAdder。我正在努力编写 AmazingAdder 的打字稿定义。 javascript 文件如下所示:

MyModule.AmazingAdder = function(options){
     //some amazing code

 };

MyModule.AmazingAdder.Statuses={
   success: 1,
   failure: 2
};

我不确定如何在我的打字稿定义文件中声明状态对象。我的 d.ts 文件如下所示:

declare module MyModule
{
  export class AmazingMultiplier
  {
       result: number;
       constructor(params: any?)
  }

 export class AmazingAdder
  {
     constructor(params: any?)
     class Statuses
     {
        success: number,
        failure: number
     }
  }

}

但是,我在定义状态的 'class' 中得到了意外标记。任何援助将不胜感激。我已经通读了教程,但不明白我该怎么做。

您可以创建一个 class 和同名的模块。此外,您还需要为 Statuses:

使用枚举
declare module MyModule {
    class AmazingAdder {
        constructor(params?: any);
    }
    module AmazingAdder {
        enum Statuses {
            success = 1,
            failure = 2,
        }
    }
}