Задать вопрос
@Nikitakun1

Можно ли реализовать кастомный typescript-декоратор для типизации пропсов по аналогии с @Input в Angular?

Подскажите, возможно ли написать кастомный ts-трансформер, чтобы IDE (Webstorm) по декоратору свойства класса смогла предлагать пропсы при написании JSX-элементов (и чтобы при компиляции происходил тайпчекинг)? Хотелось бы, чтоб это выглядело примерно вот так:

class App extends React.Component {
 
    @Prop public color: string;

 }


Мотивировано тем, что прокидывать интерфейсы пропсов в виде дженериков и постоянно вычленять пропсы из this.props неудобно, это все можно было бы реализовать при помощи декоратора, но я не понимаю, каким образом заставить ts-компилятор и IDE воспринимать подобный декоратор должным образом
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Я, увы, не до конца понял, что именно вам нужно, но одно могу сказать: IDE умеет работать напрямую только с самим typescript, т.е. если исходя из логики typescript там должен быть тайпчек или там может быть ограниченный набор для подстановки - это будет работать. Если нет - нет. Кастомные трансформы не учитываются.
Также IDE может расширенно поддерживать популярные расширения и трансформы с помощью (встроенных) плагинов, но для своего уникального кейса, выходящего за стандартные рамки, вам придётся пилить свой плагин.
Декораторы же - это не магия, это обычные функции + сахарный синтаксис.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽