Когда мы создаем некоторый класс Typescript, мы также обычно создаем интерфейс «options» и затем используем его в конструкторе в качестве параметра, копируя и устанавливая поля в классе, используя параметр интерфейса.Я считаю, что это довольно распространенная модель.Мы хотим прокомментировать (JSDoc) все возможные опции.
На данный момент мы используем один и тот же комментарий к полям Interface
, а также к полям Class
, поскольку они фактически представляют одну и ту же вещь.Но это не СУХОЙ.Однако мы НЕ хотим, чтобы Class
расширял Interface
, потому что фактический тип поля в Class
может отличаться от типа 100 * *.
export interface Interface
{
/** some comment */
foo?: number[] | string[];
/** some comment */
bar?: string;
}
export class Class
{
/** some comment - same as in Interface */
foo?: ko.ObservableArray<number|string>;
/** some comment - same as in Interface */
bar?: string;
constructor(options: Interface)
{
this.foo = ko.observableArray(options.foo);
this.bar = options.bar;
...
}
}
Как мы аннотируемполя класса, чтобы они перерабатывали комментарий из полей интерфейса?Или есть какой-то другой способ один раз прокомментировать поле и повторно использовать его?
Спасибо.