使用名称空间避免从每个文件导入

时间:2018-07-18 04:14:11

标签: typescript tsc typescript-namespace

根据本文,您可以使用TypeScript命名空间来导入类型/接口,而无需包含导入:

https://scotch.io/tutorials/3-useful-typescript-tips-for-angular

但是,如果我创建一个名字空间:

export namespace ST {

  export interface Ifoo {

  }
}

为了得到认可,我必须像这样导入它:

import {ST} from 'suman-types/dts/foo';

export const foo : ST.Ifoo = function () {

};

我在做错什么吗?如何使用命名空间轻松导入代码?

也许这仅适用于Angular,而实际上不适用于CommonJS / Node.js吗?不知道为什么不这么做。

1 个答案:

答案 0 :(得分:0)

正如您在页面上所提到的,这实际上并不仅限于Angular。

乍看之下,您可以将export与名称空间一起使用。

export namespace ST {
      export interface Ifoo { }
}

scotch.io上的示例说,您应该仅对嵌套接口使用export。像这样:

namespace ST {
      export interface Ifoo { }
}

这应该可以解决问题。这样就不需要进一步的import。您应该可以在整个应用程序中使用名称空间,而无需任何其他输入语句。