Как стать автором
Обновить

Комментарии 6

Не хочу вас огорчить, но это не enum

Вы про ts.SyntaxKind?

а, понял. Вы про Numbers. Да, поторопился. В `typescript` это юнион. Просто enum из openapi схем конвертирую в юнионы, вот и перепутал (

НЛО прилетело и опубликовало эту надпись здесь

А для чего это может пригодится, при разработке?

Прям много где, в разработке, скорее всего, не пригодится, но попробую привести пару кейсов, которые мне первыми пришли на ум.

— Для автоматической генерации документации к компонентам
— Для генерации тайпскриптовых файлов на основе каких‑то других данных (например но основе openapi json / yaml, bpmn cmof).

Рассмотрим первый пример.
Допустим, вы пишите аналог сторибука. У вас есть компонент кнопки на тайпскрипте, компонент задокументирован через jsdoc , как и поля его типа. Т.е. что-то вроде:

/** 
 * A button means an operation (or a series of operations). Clicking a button will trigger corresponding business logic.
 * ## When to use:
 * - Use case A
 * - Use case B
 */
const Button: FC<ButtonProps> = ({tooltip, ...restProps}) => {
export type ButtonProps {
  /** Some description */
  tooltip: string
  // ...other props
}

Можно без дополнительного бойлерплейта на основе этих данных генерировать т. н. API компонента, с полями (пример из анта: https://ant.design/components/button#api), типами и описаниями, как и доку к самому компоненту. Прикрути сюда пару блоков с примерами и всё — вполне неплохая дока вида

---
Button:

A button means an operation (or a series of operations). Clicking a button will trigger corresponding business logic.

When to use:

  • Use case A

  • Use case B

Examples:

...

API:

  • Tooltip - String - Required - Default value

Зарегистрируйтесь на Хабре, чтобы оставить комментарий