Size: a a a

TypeScript — русскоговорящее сообщество

2020 March 28

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Victor
@bowzee а зачем кстати Environment это класс, а не просто объек с ридонли свойствами? там же все статик и не создаются инстансы
Потому что, насколько мне известно, декорировать можно только свойства класса. А объекты нельзя.
Также объекты неудобно типизировать, надо отдельно писать интерфейс, отдельно объект, его имплементирующий.
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Стас Хитрич
Ну я пока не применял на практике. Но мне кажется немного излишним выносить кусок кода из класса. Как по мне, добавление @декоратора возле чего-то в классе это уже само по себе нарушение solid принципа про не изменение, а добавление. Так в чем смысл, проще отнаследовать или переписать уже
это сахар просто
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Стас Хитрич
Ну я пока не применял на практике. Но мне кажется немного излишним выносить кусок кода из класса. Как по мне, добавление @декоратора возле чего-то в классе это уже само по себе нарушение solid принципа про не изменение, а добавление. Так в чем смысл, проще отнаследовать или переписать уже
То есть вы отрицаете декораторы как явление, а не как противостандартную реализацию в TypeScript?)
Но ведь есть ещё такие авторитетные языки, как Java и C#, где декораторы - важная часть их жизни. Все хором SOLID нарушают ?)
источник

СХ

Стас Хитрич in TypeScript — русскоговорящее сообщество
Dilame Bowzee
То есть вы отрицаете декораторы как явление, а не как противостандартную реализацию в TypeScript?)
Но ведь есть ещё такие авторитетные языки, как Java и C#, где декораторы - важная часть их жизни. Все хором SOLID нарушают ?)
Я не консерватор и не против новшеств)
Просто в данный момент я активно изучаю, а не практикую TypeScript. Но из того с чем столкнулся, декораторы мне показались чем-то странным. Декораторы параметров функций, декораторы свойств вообще чушь. Единственное что мне понравилось, это декоратор методов, когда я могу изменить возвращаемое значение или обработать его дополнительно не нарушая дефолтного функционала класса или конкретного метода.
Проблема в том, что это просто странная вещь, ведь раз я могу засунуть декоратор, значит мне никто не запрещает тупо переписать метод под свои нужды
источник

СХ

Стас Хитрич in TypeScript — русскоговорящее сообщество
Но если в команде будет одобрено использование декораторов, то почему нет. Но как по мне, это немного усложняет код
источник

ДК

Дмитрий К in TypeScript — русскоговорящее сообщество
Стас Хитрич
Я не консерватор и не против новшеств)
Просто в данный момент я активно изучаю, а не практикую TypeScript. Но из того с чем столкнулся, декораторы мне показались чем-то странным. Декораторы параметров функций, декораторы свойств вообще чушь. Единственное что мне понравилось, это декоратор методов, когда я могу изменить возвращаемое значение или обработать его дополнительно не нарушая дефолтного функционала класса или конкретного метода.
Проблема в том, что это просто странная вещь, ведь раз я могу засунуть декоратор, значит мне никто не запрещает тупо переписать метод под свои нужды
Декоратор позволяет уменьшить объём бойлерплейта в этом методе.
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Dilame Bowzee
То есть вы отрицаете декораторы как явление, а не как противостандартную реализацию в TypeScript?)
Но ведь есть ещё такие авторитетные языки, как Java и C#, где декораторы - важная часть их жизни. Все хором SOLID нарушают ?)
Где в java и c# декораторы?)
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
в java аннотации же вроде те же декораторы, разве нет?
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Андрей Звёздочка
Где в java и c# декораторы?)
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Maxim Sosnov
в java аннотации же вроде те же декораторы, разве нет?
Нет. Это абсолютно разные вещи.
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
Андрей Звёздочка
Нет. Это абсолютно разные вещи.
почему?
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
Maxim Sosnov
почему?
Одно дело поставить метку, а другое дело сделать преобразование над сущностью.
источник

ДК

Дмитрий К in TypeScript — русскоговорящее сообщество
Аннотации декларативны. Декораторы императивны. Впрочем, можно использовать декораторы лишь для аннотирования, не меняя поведения.
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
прочел про разницу, был не прав на счет аннотаций в java. Думал они могут менять поведение аннотируемого кода
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Дмитрий К
Аннотации декларативны. Декораторы императивны. Впрочем, можно использовать декораторы лишь для аннотирования, не меняя поведения.
Декораторы императивны? Может я не очень хорошо разбираюсь в различиях этих понятий, но разве декорирование - это не декларация?
источник

КВ

Кирилл Валиков in TypeScript — русскоговорящее сообщество
народ, кто тыкал тс плагины (https://github.com/microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin)
подскажите, почему может не подцепляться кастомный плагин?
в тестовом проекте:
{
 "compilerOptions": {
   "plugins": [{
       "name": "../my_ls_plugin/out"
   }]
 }
}
Путь точно корректный
в out валяется index.js плагина (из туториала).
В логи ничего не пишется, изменений в логике, которые зашиты в плагин, не отображается
источник

ДК

Дмитрий К in TypeScript — русскоговорящее сообщество
Нет, это конкретное действие по модификации. Декларации же сами по себе ничего не делают, пока не придёт интерпретатор этих деклараций.
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Дмитрий К
Нет, это конкретное действие по модификации. Декларации же сами по себе ничего не делают, пока не придёт интерпретатор этих деклараций.
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Decorators restore the ability to run code at design time, while maintaining a declarative syntax.
источник

DB

Dilame Bowzee in TypeScript — русскоговорящее сообщество
Дмитрий К
Нет, это конкретное действие по модификации. Декларации же сами по себе ничего не делают, пока не придёт интерпретатор этих деклараций.
И почему это конкретное действие по модификации? Какое конкретное? И почему именно модификация?
Это вполне себе декларация, а что под ней спрятано - детали имплементации, которые меня не волнуют
источник