169 похожих чатов

Есть дженерик-компонент селекта. Хотелось бы, что б селект умел понимать

как достать label для item определенного типа. То есть если в качестве item в селект приходит Юзер, селект понимает что нужно вытащить name, для типа Symbol - дескрипшен, для примитивов - вернуть значение, преобразованное в строку. Самому в голову приходит решение с классами, но как-то не особо оптимально выходит для каждого item создавать новый инстанс его класса. Есть у кого идеи как это можно реализовать?

6 ответов

6 просмотров

Перегрузками?

Nick-Volkov Автор вопроса

Хм. Да, можно сделать перегрузку getLabel. Но тогда, если нужно будет заставить селект работать с новым для себя типом, нужно будет добавить новую функцию getLabel в его скоуп. Не вписывается в SOLID, а конкретно в букву О) но вариант неплохой, спасибо

Nick-Volkov Автор вопроса

По солиду, видимо, можно сделать только с использованием классов?

Nick-Volkov Автор вопроса

Может быть, ts декораторы?

Почему нарушается-то? Принцип говорит о том, что можно расширять поведение, но нельзя изменять. Если стандартный компонент умеет автоматически показывать несколько стандартных типов данных, а с помощью аргумента можно добавить поддержку собственного - это вполне соответствует open/closed principle

Так а если просто пробрасывать снаружи пропсой геттер для лейбла? Вида ‘getLabel: (item: T) => string’

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
11
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
10
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Книга Юрова В.И пойдёт для обучения?
Botsman
24
I was reading a lot about API and REST API and I still don't get it, what's a application programming interface? 😄 How to build a private API for getting other informations f...
Witold 🖤🩶
12
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Карта сайта