Я создаю новый класс в TypeScript с объектом, который я использую для отслеживания состояния определенных вещей в скрипте. Объект получает два уровня глубины. Однако, когда я запускаю TypeDoc над объектом, он не выбирает типы, которые были определены, вместо этого предполагая, что они «любые». Я думаю, что я принял нестандартный подход к кодированию этого объекта. Как настроить этот объект в соответствии с предпочтительным синтаксисом TypeScript , чтобы TypeDoc создавал ожидаемую документацию?
Сначала я попробовал то, что ожидал, сработает:
class ClassName {
/**
* A description of what this status is.
*/
status: {
/**
* A description of what this property is.
*/
pair: string[],
db: {
ready: boolean,
interval: number
}
} = {
pair: [], ...
} ...
}
Это не сработало. Свойство pair
не было определено в произведенной документации. Затем я переместил комментарии для TypeDoc в значения по умолчанию, которые я установил для свойств объекта:
class ClassName {
/**
* A description of what this status is.
*/
status: {
pair: string[],
db: {
ready: boolean,
interval: number
}
} = {
/**
* A description of what this property is.
*/
pair: [], ...
} ...
}
Это сработало в том, что TypeDoc распознал бы комментарии как относящиеся к следующему объекту, но определил бы его как "любой". В этот момент я решил, что не следую стандартному способу определения объектов в TypeScript , потому что не смог найти в Интернете пример, который соответствовал бы этому способу определения свойства класса.
Я понимаю, что документация может быть создана с использованием Интерфейсы . Однако TypeDoc затем разделяет каждый Интерфейс на свою собственную страницу. Это делает документацию очень трудной для чтения. Но это привело меня к последующему вопросу: является ли это правильным способом определения свойств класса многоуровневого объекта ?