我在不同的目录中有许多模板 - 我为每个模板定义了一个接口,因此我可以确定我在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
到那么远.
我不明白我在做错了什么或错过了什么我害怕.任何帮助将不胜感激!
您可以像这样重新导出:
// 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 = { ... }