在TypeScript中导出导入的接口

时间:2017-01-16 20:59:53

标签: typescript

我在不同的目录中有很多模板 - 我为每个模板定义了一个接口,所以我可以确定我在TypeScript代码中引用的内容将在模板中可用。

我想为每个接口定义一个接口,然后整理一个可导入的文件中的所有接口(因此我总是可以导入该文件,自动完成将显示可用的接口)。 / p>

但是,我在这方面遇到了麻烦。我目前有什么:

login/interface

export interface Index {
    error: string;
    value: string;
}

interfaces.ts

import * as login from './login/interface';
export let View = {
    Login: login
};

login.ts

import * as I from './interface';
...
let viewOutput: I.View.Login.Index = {
   ...
};

结果:

  

错误TS2694:命名空间'" ...界面"'没有导出的成员'查看'。

但是,如果我尝试将I.View.Login.Index作为简单变量访问,那么我得到:

  

财产'指数'类型" typeof" ... interface"'。

这似乎是正确的,因为界面实际上并不是一种类型,但是它已经能够访问I.View.Login以获得那么远。

我不明白我在这里做错了什么或错过了什么我害怕。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:7)

你可以re-export这样:

// interfaces.ts
export * from './login/interface';
export * from './something/interface';

然后:

// login.ts
import * as I from './interface';
let viewOutput: I.Index = { ... }

另一种选择是:

import * as login from './login/interface';
export { login as Login };

然后:

// login.ts
let viewOutput: I.Login.Index = { ... }