Size: a a a

Советский Angular

2019 December 01

ДМ

Денис Макаров in Советский Angular
Nikita 👩🏻‍💻💭
@thekiba а TeamCity платный?
Да
источник

SK

Siarhei Kurylkin 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
Ничего не понимаю, как зафиксать? кто знает?
если кому интересно (нет) я решил, надо `@Component` на `@Injectable поменять в абстрактном компоненте, тогда билдится и прод и дев
источник

ДМ

Денис Макаров 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
Ничего не понимаю, как зафиксать? кто знает?
А зачем?
источник

SK

Siarhei Kurylkin in Советский Angular
зачем - чтоб билдилось и прод и дев) а *почему* так работает сейчас буду разбираться
источник

SK

Siarhei Kurylkin in Советский Angular
а, не увидел на какое сообщение отвечаешь)
источник

ДМ

Денис Макаров in Советский Angular
Siarhei Kurylkin
зачем - чтоб билдилось и прод и дев) а *почему* так работает сейчас буду разбираться
Зачем делать абстрактный класс компонента?
источник

ДМ

Денис Макаров in Советский Angular
Чем простой абстрактный класс не подходит?
источник

SK

Siarhei Kurylkin in Советский Angular
зачем - потому что есть 7 компонентов с одинаковыми свойствами, и эти свойства с разными типами (разными, но нследоваными от одного), и есть пару общих генерик методов для всех этих 7 компонентов.
источник

ДМ

Денис Макаров in Советский Angular
Siarhei Kurylkin
зачем - потому что есть 7 компонентов с одинаковыми свойствами, и эти свойства с разными типами (разными, но нследоваными от одного), и есть пару общих генерик методов для всех этих 7 компонентов.
Зачем декорировать такой класс как компонент?
источник

ДМ

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

SK

Siarhei Kurylkin in Советский Angular
Денис Макаров
Зачем декорировать такой класс как компонент?
там в первом сообщении написал, если непродекарировать, то дев билд в рантайме кидает ошибку Error: Can't resolve all parameters for ConctreteMyComponent: (?).
источник

SK

Siarhei Kurylkin in Советский Angular
я жеж сразу и убрал этот декоратор в пятницу и все на прод залил, работало. сегодня хотел чуть поработать и обнаружил, что работать нельзя в такой версии)
источник

ДМ

Денис Макаров in Советский Angular
Siarhei Kurylkin
там в первом сообщении написал, если непродекарировать, то дев билд в рантайме кидает ошибку Error: Can't resolve all parameters for ConctreteMyComponent: (?).
Ну я так понял это после декорирования произошло) уберите @Component и все пройдет
источник

SK

Siarhei Kurylkin in Советский Angular
Денис Макаров
Ну я так понял это после декорирования произошло) уберите @Component и все пройдет
не. если убрать, то дев рантайм ломается. если оставить, то прод билд не идет
источник

SK

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

ДМ

Денис Макаров in Советский Angular
Да там вообще не нужен декоратор, если это абстрактный класс
источник

SK

Siarhei Kurylkin in Советский Angular
я так тоже думаю. но еслиб не падал билд, то и не ставил бы его
источник

ДМ

Денис Макаров in Советский Angular
Все инжектируемые свойства будут из потомков в super передоваться
источник

ДМ

Денис Макаров in Советский Angular
Видимо у вас в чем-то еще проблема
источник

ДМ

Денис Макаров in Советский Angular
Чтобы больше сказать, надо посмотреть код конечно
источник