Как избежать ручного дублирования документации типов в интерфейсах в TypeScript - PullRequest
0 голосов
/ 10 апреля 2020

Я часто сохраняю сигнатуры функций как отдельный тип, когда использую их во многих местах.

Проблема в том, что всякий раз, когда я использую такой тип в интерфейсе или составном типе, он не ' t автоматически показывать мне документацию для базового типа при наведении курсора на свойство ...

/**
 * Documentation for function that is used in multiple places
 */
export type MyFunction = () => void

export interface SomeInferface {
  /**
   * I HAVE to duplicate the documentation manually here, if not, it won't show up in the interface...
   */
  myFunction: MyFunction
}

export type SomeType = {
  /**
   * I HAVE to duplicate the documentation manually here, if not, it won't show up in the type...
   */
  myFunction: MyFunction
}

Это делает его более непривлекательным для разработчиков, использующих мои библиотеки. Таким образом, чтобы уменьшить это, я должен вручную продублировать блок документации типа внутри каждого интерфейса и составного типа, который его использует!

Но это, в свою очередь, очень подвержено ошибкам, если я изменю его и не забудьте обновить его где-нибудь ...

Как я могу автоматически заставить VSCode показывать документацию типов в интерфейсах и составных типах?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Вот запрос функции , который отслеживает включая документацию по типу значения, когда вы наводите курсор на это значение

Однако то, что VS Code делает сегодня, ожидается, поскольку вы документируете две разные вещи. В примере:

/**
 * Documentation for function that is used in multiple places
 */
export type MyFunction = () => void

Документация для типа MyFunction.

Однако для:

export interface SomeInferface {
  /**
   * I HAVE to duplicate the documentation manually here, if not, it won't show up in the interface...
   */
  myFunction: MyFunction
}

документация относится к свойству myFunction.

Как правило, у вас должна быть другая документация для самого свойства, чем для типа этого свойства

0 голосов
/ 10 апреля 2020

После долгого поиска этого везде может показаться, что это пока невозможно. Это открытый запрос: https://github.com/microsoft/TypeScript/issues/37876

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...