Size: a a a

Советский Angular

2019 December 01

S

Smooth Operator in Советский Angular
Денис Макаров
но если мы опустим шаблон
а давай не опустим)
источник

ДМ

Денис Макаров in Советский Angular
Smooth Operator
а давай не опустим)
а если опустим)
источник

S

Smooth Operator in Советский Angular
я не вижу противоречия декоратора и абстрактного класса
источник

S

Smooth Operator in Советский Angular
а ты?
источник

ДМ

Денис Макаров in Советский Angular
ну у меня компилятор на такие ругается
источник

ДМ

Денис Макаров in Советский Angular
а нет
источник

ДМ

Денис Макаров in Советский Angular
хотя стоп, в аот я собрать не могу
источник

ДМ

Денис Макаров in Советский Angular
мне пришлось переписать кучу кода
источник

ДМ

Денис Макаров in Советский Angular
и убрать декораторы с абстрактных базовых классов
источник

S

Smooth Operator in Советский Angular
а в чем проблема была?
источник

Вキ

Вертихвост キバ in Советский Angular
Siarhei Kurylkin
привет, кто нибудь делал абстрактный дженерик компонент?
я сделал
@Component({})
export abstract class MyBaseComponent<
   TDataType = MyData | MyData[],
   TSettingsType = MySetting> {
и все норм было, билдило и работало. но когда пришло время на прод его мержить, прод билд поломался, сказал что
ERROR in : Cannot determine the module for class MyBaseComponent in D:/work/...-base.component.ts! Add MyBaseComponent to the NgModule to fix it.
я попробовал в модуль declaration добавить, но нельзя туда абстрактный. тогда я просто убрал @Component и все сбилдилось и работает на проде) но теперь в dev watch моде стало ругаться
Error: Can't resolve all parameters for ConctreteMyComponent: (?).
Пока не верну @Component
Ничего не понимаю, как зафиксать? кто знает?
Добавь декоратор @Injectable()
источник

SK

Siarhei Kurylkin in Советский Angular
Siarhei Kurylkin
я уже пофиксал. @Injectable() вместо @Component и работают оба билда
👌
источник

ДМ

Денис Макаров in Советский Angular
Smooth Operator
а в чем проблема была?
аот ошибку выдает, когда у абстрактного класса есть @Component или @Directive
источник

SK

Siarhei Kurylkin in Советский Angular
но не понял почему так
источник

Вキ

Вертихвост キバ in Советский Angular
👌
источник

ДМ

Денис Макаров in Советский Angular
в моем случае помогло простое их удаление
источник

Вキ

Вертихвост キバ in Советский Angular
Siarhei Kurylkin
но не понял почему так
Потому что когда указывается декоратор, то typescript регистрирует метаданные для рефлексии
источник

ДМ

Денис Макаров in Советский Angular
Вертихвост キバ
Потому что когда указывается декоратор, то typescript регистрирует метаданные для рефлексии
но ведь метаданные не наследуются в aot
источник

Вキ

Вертихвост キバ in Советский Angular
Денис Макаров
но ведь метаданные не наследуются в aot
А когда декоратора нет, то и метаданных нет
источник

S

Smooth Operator in Советский Angular
Денис Макаров
аот ошибку выдает, когда у абстрактного класса есть @Component или @Directive
похоже на баг ангуляра
источник