1
5
|
2
1
要添加一些附加信息: Ivy中的一个关键概念是局部性,因此为了编译或重新编译一个组件,编译器不再扫描整个代码基-只有组件被重新编译;并且,组件的所有行为必须在编译类中捕获。 The link provided in other answers provides more details on the "why" .
在Angular 9中,这个要求是可选的;但是不要从CLI升级放在那里的基类中删除decorator,因为这个要求在Angular 10中是非可选的。 |
3
1
我不能在没有看到的情况下对您的代码进行特别的评论,但是作为一个一般性的观点,最好是 使用聚合而不是继承 . 换句话说,将基类重新设计为服务,然后将其注入派生类。 |
4
0
但是,我刚刚经历了一个序列,这似乎意味着没有办法为一个指令创建一个抽象基类,如果这个类使用角度特征(输入等)。需要重构。
我做了这一切,即使TS皮特哭了关于空白选择器,我关闭了一个tslint:禁用。。。 …虽然不再显示为lint错误,但现在显示为生成错误(实际上是“请添加它!”)。因此,我添加了一个选择器,其中包含一些概念:它永远不会被使用,因为类是抽象的。
…该类以前未添加到模块中。我没有编写原始的代码,而且很惊讶这从来没有出现在--prod构建中,但是读到以前的图形引擎,我发现它是可以原谅的,因为它具有全局可见性。但是Ivy没有,它是独立编译的,所以你需要decorator,我把它放进去了,没有模块的错误就出现了。所以我把它添加到相关模块中。 ……没有利润。”换句话说,我猜你不能在一个模块中声明一个抽象类(至少,不是通常的“只把它添加到声明中”的方式)。 所以最终,在没有考虑重构相当复杂的组件层次结构时,我只是从类定义中删除了抽象。
我有点乱摆弄,但找不到直接绕过它的方法。 所以在这里延伸答案:
(尽管文档上说“你可以把选择器留空”,除非你想调整你的规则,但似乎你做不到)。 |
Devmix · 如何在new Map()中保存状态? 1 年前 |
Luisus · 从Prisma 5客户端提取类型 1 年前 |
Rostys · TypeScript:使用类型转换进行类型保护 1 年前 |
Anne · 类型不一致的对象的TypeScript类型定义 1 年前 |
tuimui · 使用react+ts通过道具传递数据 1 年前 |