如何拆分大型的typescript index.d.ts文件

时间:2016-09-04 20:22:35

标签: javascript typescript

我们的应用程序有许多对象,我们可以大致分为3类; '核心','app'和'对象'。

我在线跟踪了一个基本的Typescript教程,目前有一个index.d.ts,它有这种布局:

interface AH {

}

declare var ah: AH;

declare module 'ah' {
    export = ah;
}

declare module ah {

    module objects {
        // much objects
    }

    module app {
        //many app
    }

    module core {
        //such core
    }
}

然而,由于我们使用了古老的源代码控制,将这个单个文件分解为3个单独的文件,包括应用程序,核心和对象,将“命名空间”作为ah.app.blah,ah.core提供是有益的。 .blah和ah.objects.blah。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您没有在另一个项目中使用此库,则不需要声明模块。

看起来你有两个选择:

  1. 将要公开的类型声明导出到单独的文件中,并在需要时导入它们。由于这似乎是最常见的做法,当您处理外部模块时,我认为这是我个人的偏好。

    app.d.ts (~core.d.ts,objects.d.ts)

    export interface theAppInterface {}
    

    src / index.ts (示例用法)

    import { theAppInterface } from '../app'
    import { theCoreInterface } from '../core'
    
    let appUsage: ah.app.theAppInterface
    
  2. 在全局声明文件中声明单独的类别,因此它们被放入全局命名空间中,您不必在任何地方单独导入它们。例如

    app.d.ts (~core.d.ts,objects.d.ts)

    declare namespace ah {
      namespace app {
        interface theAppInterface {}
      }
    }
    

    <强>的src / index.ts

    let appUsage: ah.app.theAppInterface
    let coreUsage: ah.core.theCoreInterface