当前位置:  开发笔记 > 编程语言 > 正文

在TypeScript中导出导入的接口

如何解决《在TypeScript中导出导入的接口》经验,为你挑选了1个好方法。

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

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

但是,我在做这件事时遇到了麻烦.我目前拥有的:

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:命名空间'"... interface"'没有导出的成员'View'.

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

类型'typeof'... interface"'上不存在属性'Index'.

这似乎是正确的,因为接口不是真正的类型,但它已经能够访问I.View.Login到那么远.

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



1> Nitzan Tomer..:

您可以像这样重新导出:

// 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 = { ... }

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有