Angular 如果aldrady以角度在父对象中导入,是否可以忽略显式重叠导入?

Angular 如果aldrady以角度在父对象中导入,是否可以忽略显式重叠导入?,angular,typescript,import,Angular,Typescript,Import,不确定标题是否足够清楚。请随时提出改进建议 我注意到我正在设计的组件往往有大量的导入。其中一些在导入组件中重复。直觉上,我感觉我正在让它工作,但是感觉到代码的味道 假设我们想要一只猴子吃香蕉 import { Banana } from "./banana"; @Component export class Monkey { } 现在,有人想养一只猴子 import { Monkey } from "./monkey"; @Component export class Dude { } 但是

不确定标题是否足够清楚。请随时提出改进建议

我注意到我正在设计的组件往往有大量的导入。其中一些在导入组件中重复。直觉上,我感觉我正在让它工作,但是感觉到代码的味道

假设我们想要一只猴子吃香蕉

import { Banana } from "./banana";
@Component
export class Monkey { }
现在,有人想养一只猴子

import { Monkey } from "./monkey";
@Component
export class Dude { }
但是如果这家伙也饿了,想要一个香蕉给自己呢

import { Monkey } from "./monkey";
import { Banana } from "./banana";
@Component
export class Dude { }
这对我来说似乎是无效和多余的。第二项进口似乎是多余的,因为这家伙已经通过猴子得到了一根香蕉

在Angular中声明导入层次结构是否合适?或者在查看每个文件中的大量导入时,是否有一种类似于“老板”的方法来减少滚动有效负载


如果没有更好的方法,我很高兴看到参考质量的这种残暴行为的动机。

您可以从其他文件导出,通过使用单个导入使多个文件中的标识符可用:

import { Monkey } from "./monkey";
export { Monkey } from "./monkey"; // re-export
@Component
export class Dude { }
另见

这可能会导致难以发现的错误,但如果存在周期。
请参见

它取决于
--模块
目标。如果使用
--模块系统
,则
Monkey
将只导入一次。如果使用
--modulecommonjs
,则会发出两个
require
调用<代码>系统是一种高级的传输格式,因为它以最高的保真度保留了模块语义,包括正确的、符合规范的循环引用支持。哦,孩子。。。这看起来更让人困惑的是导入/导出,呵呵。谢谢你的回答。我想我现在还是保留详细的版本吧。关于它为什么设计成这样有什么想法吗?我很难回答,因为对我来说,它看起来非常一致和合乎逻辑。为什么要隐式导出某些内容?我想你的期望取决于你来自哪里。如果您来自C#、Java、Go等强类型语言。。。这种行为将是您所期望的,如果您来自其他语言,您可能会习惯不同的行为(我自己不知道任何行为,但我非常相信强类型)。