从Angular模块导出Typescript接口
我有一个Typescript接口IBreadcrumbNavigation
我正在导出。我可以在一个角组件中使用它import { IBreadcrumbNavigation } from 'app/shared/interfaces/breadcrumbNavigation';
从Angular模块导出Typescript接口
但是,组件的模块已经导入了一个SharedModule
。我想将IBreadcrumbNavigation
接口放在SharedModule
中,这样我就不需要将它明确地导入到每个想要使用它的组件中。
在我SharedModule
我有
import { IBreadcrumbNavigation } from './interfaces/breadcrumbNavigation';
@NgModule({
declarations: [
IBreadcrumbNavigation
],
exports: [
IBreadcrumbNavigation
]
})
export class SharedModule { };
打字稿给出了错误“‘IBreadcrumbNavigation’仅是指一类,但这里正在使用的值。”
如果我将IBreadcrumbNavigation
从接口更改为类,错误消失。
是否有很好的解决办法,或者我只是需要直接将接口直接导入到每个组件?
是否有一个良好的修复此,
一样的错误信息说,接口不实际声明任何存在于运行。它们纯粹在编译时存在于TypeScript中,并被删除。所以将它们放在装饰器的数组中是没有意义的,因为在运行时存在那些做。
听起来像转换到一个类是什么可以解决它,但很可能你应该导出这些接口的具体实现者。
添加declarable类 - 组件,指令和管道 -到
declarations
列表。声明这些类在正好应用程序的一个模块。如果他们属于这个模块,将它们声明在这个模块中。
做我只是需要明确地直接导入接口为每个组件?
您确实需要这样做 - 请记住,NgModule不会为您自动导入其他ECMAScript/TypeScript模块。在模板之外,你必须自己处理这个问题。
如果它不是一个组件,管道,指令,模块,那么只需要将模块中的接口导入到所需的模块中。必须导出接口
in'。/接口/ breadcrumbNavigation';
export interface IBreadcrumbNavigation {
...
}
在其他模块x分量只导入接口
import { IBreadcrumbNavigation } from 'pathToOtherModule/interfaces/breadcrumbNavigation';
我们可以看到,部件模块 –