2016-05-11 2 views
1

Есть ли принятый способ (желательно совместимый с IDE) для документирования вложенных элементов формы в ES6?Как документировать члены класса ES6 с вложенными структурами?

Например

class Foo extends React.Components { 
    constructor(props) { 
     super(props); 
     this.props.bar; // Webstorm for example will think 'bar' is not a member of props 
    } 
} 

Есть ли то, что мы можем сделать, чтобы помочь в понимании IDE ожидаемой структуры наших членов класса? Что-то вроде:

/** @member {string} props.bar **/ 

в верхней части объявления класса или конструктора

+1

Существует такая вещь. Машинопись. – estus

+0

Я использую это для вещей ... не вариант для всех проектов, которые я не полностью владею :-( – echen

+1

Тип подсказки - одна из причин, почему люди переключаются на TS, даже если проверка типов не дает реальных преимуществ для своих проектов. Я полагаю, что ваш лучший выбор - Flow, он поддерживает [комментарии аннотации] (http://flowtype.org/blog/2015/02/20/Flow-Comments.html) и получил некоторую поддержку от IDE. – estus

ответ

1

@property вроде работает, но чувствует себя отслаиваться.

/** 
* @property {object} props 
* @property {number} props.bar 
*/ 
class Foo extends React.Components { 
    constructor(props) { 
     super(props); 
    } 
} 

Гадкий как ад, но работает как часы:

class Foo extends React.Components { 
    constructor(props) { 
     super(props); 

     /** @type {{foo: {bar: {}}}} */ 
     this.props = this.props; 
    } 
} 
+0

спасибо, это появляется работать, идти с подходом № 1 – echen

Смежные вопросы