Javascript 如何将接口导出到全局命名空间-angular
我有一个定义了接口的文件,我想与我的应用程序的全局命名空间共享。我的第一次尝试是将Javascript 如何将接口导出到全局命名空间-angular,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个定义了接口的文件,我想与我的应用程序的全局命名空间共享。我的第一次尝试是将interfaces.ts文件导入我的app.module.ts,并将接口放入exports数组中,但类型/接口不能以这种方式使用,因此我想到了一些与这个小问题相关的问题 导出到全局名称空间时是否需要涉及app.module.ts 是否有不同的方法(可能是本地javascript方法) 如果执行此操作需要app.module.ts,我如何导入接口,使我的app.module.ts与我的应用程序的其余部分共享接口,这
interfaces.ts
文件导入我的app.module.ts
,并将接口放入exports
数组中,但类型/接口不能以这种方式使用,因此我想到了一些与这个小问题相关的问题
导出到全局名称空间时是否需要涉及app.module.ts
是否有不同的方法(可能是本地javascript方法)
如果执行此操作需要
app.module.ts
,我如何导入接口,使我的app.module.ts
与我的应用程序的其余部分共享接口,这样我就不必在我的组件中不断地导入它了?在此处签出全局名称空间:
但要注意:
由于可能存在运行时冲突,这种模式有些危险,但我们仍然可以为其编写声明文件
根据Angular官方的说法,最好有一个
SharedModules
,用于在整个应用程序中多个位置使用的everting。在这个SharedModule
中,您可以为所有常见的东西提供不同的目录应用程序结构,例如模型
,服务
,拦截器
,管道
,组件
等等
然后在主app.module.ts上使用此模块
并导入所需内容。
要了解更多信息,请学习本实用快速指南。我将
声明全局{}
以及所有已定义的接口添加到我的应用程序模块中。这是可行的,但是如果在一个文件中有接口,我就可以将其“放入”到declare global{}
块中。有办法做到这一点吗?
/*~ Note: If your global-modifying module is callable or constructable, you'll
*~ need to combine the patterns here with those in the module-class or module-function
*~ template files
*/
declare global {
/*~ Here, declare things that go in the global namespace, or augment
*~ existing declarations in the global namespace
*/
interface String {
fancyFormat(opts: StringFormatOptions): string;
}
}