Комментарии 6
Не хочу вас огорчить, но это не enum
А для чего это может пригодится, при разработке?
Прям много где, в разработке, скорее всего, не пригодится, но попробую привести пару кейсов, которые мне первыми пришли на ум.
— Для автоматической генерации документации к компонентам
— Для генерации тайпскриптовых файлов на основе каких‑то других данных (например но основе 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
Кодогенерация и парсинг TypeScript с помощью typescript