#инструмент дня
Устал вручную типизировать ответы от API для TypeScript или любого другого типизированного языка?
Есть решение!
https://app.quicktype.io/
Фиганул туда JSON — получил нужную структуру или описание типа, даже с тайпгардами. Уютненько!
Есть расширение для VS Code: https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype
Ещё один мощный инструмент в тему дня: https://transform.tools. Одним типизированием JSON не ограничивается: можно CSS в Tailwind, а можно Flow в TypeScript.
Вот, например, если кто использует Zod — конвертор типов в схему Zod: https://transform.tools/typescript-to-zod
#json #typescript #type
Устал вручную типизировать ответы от API для TypeScript или любого другого типизированного языка?
Есть решение!
https://app.quicktype.io/
Фиганул туда JSON — получил нужную структуру или описание типа, даже с тайпгардами. Уютненько!
Есть расширение для VS Code: https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype
Ещё один мощный инструмент в тему дня: https://transform.tools. Одним типизированием JSON не ограничивается: можно CSS в Tailwind, а можно Flow в TypeScript.
Вот, например, если кто использует Zod — конвертор типов в схему Zod: https://transform.tools/typescript-to-zod
#json #typescript #type
👍31❤2
#тип дня
Попробую вместо тега #фишка внести что-то новое для TypeScript. Пусть будет "тип", а там посмотрим.
И сегодня на повестке дня запрет определённых ключей при передаче объекта. Например, контекста в трекинге или тех же пропсов в React.
Как правило, контекст в трекинге передаётся в функцию-хелпер, а после — дополняется какими-то переменными среды. Как-то так:
Понятное дело, нам совсем неохота, чтобы кто-то случайно передал в контекст type, userId или env и затёр всё нафиг.
"Погоди, так разверни контекст повыше", — скажет кто-то умный.
Ну так тоже не стоит, мы не хотим сюрпризов уже на разбореполётов логов в случае инцидента, когда ожидалось одно, а на выходе — другое.
Проще сразу не дать сделать странное, как минимум на этапе введения контекста. Наш вариант в итоге стал таким:
Ну и конечно, ссылка на песочницу: пуньк.
Есть предложения получше, котаны? Ну кроме проверки в рантайме :)
#typescript #ts #type
Попробую вместо тега #фишка внести что-то новое для TypeScript. Пусть будет "тип", а там посмотрим.
И сегодня на повестке дня запрет определённых ключей при передаче объекта. Например, контекста в трекинге или тех же пропсов в React.
Как правило, контекст в трекинге передаётся в функцию-хелпер, а после — дополняется какими-то переменными среды. Как-то так:
function logEvent(severity: LogSeverity = "info", context: LogContext = {}) {
log(severity, {
type: "event",
userId: "[email protected]",
env: "dev",
...context,
})
}
Понятное дело, нам совсем неохота, чтобы кто-то случайно передал в контекст type, userId или env и затёр всё нафиг.
"Погоди, так разверни контекст повыше", — скажет кто-то умный.
Ну так тоже не стоит, мы не хотим сюрпризов уже на разборе
Проще сразу не дать сделать странное, как минимум на этапе введения контекста. Наш вариант в итоге стал таким:
type LogContextDefaults = "type" | "userId" | "env";
type LogContext = {
[key: string]: string;
} & {
[key in LogContextDefaults]?: never;
}
Ну и конечно, ссылка на песочницу: пуньк.
Есть предложения получше, котаны? Ну кроме проверки в рантайме :)
#typescript #ts #type
❤15👍1🤩1
#инструмент дня
Устал вручную типизировать ответы от API для TypeScript или любого другого типизированного языка?
Есть решение!
https://app.quicktype.io/
Фиганул туда JSON — получил нужную структуру или описание типа, даже с тайпгардами. Уютненько!
Есть расширение для VS Code: https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype
Ещё один мощный инструмент в тему дня: https://transform.tools. Одним типизированием JSON не ограничивается: можно CSS в Tailwind, а можно Flow в TypeScript.
Вот, например, если кто использует Zod — конвертор типов в схему Zod: https://transform.tools/typescript-to-zod
#json #typescript #type #бородач
Устал вручную типизировать ответы от API для TypeScript или любого другого типизированного языка?
Есть решение!
https://app.quicktype.io/
Фиганул туда JSON — получил нужную структуру или описание типа, даже с тайпгардами. Уютненько!
Есть расширение для VS Code: https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype
Ещё один мощный инструмент в тему дня: https://transform.tools. Одним типизированием JSON не ограничивается: можно CSS в Tailwind, а можно Flow в TypeScript.
Вот, например, если кто использует Zod — конвертор типов в схему Zod: https://transform.tools/typescript-to-zod
#json #typescript #type #бородач
1👍26❤5