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

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

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

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

 }


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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽