Рубрики
Uncategorized

Создайте самообслуживание библиотеки типа с ZOD

Если вы используете Typescript, вы, вероятно, пожелали, чтобы он мог сделать еще 2 натяжки: Проверьте во время выполнения, если тип … Помечено в TypeScript, CICD, Schemavalidation.

Если вы используете TypectScript, вы, вероятно, желаете, чтобы он мог сделать еще 2 кольца:

  • Проверьте во время выполнения, если тип соответствует вашей схеме
  • Убедитесь, что в объектах не существует неожиданных полей.

Zod.

ZOD ( Github ) позволяет вам делать именно.

import { z } from "zod";

// creating a schema for strings
const foodNameSchema = z.string();
foodNameSchema.parse("tuna"); // => "tuna"
foodNameSchema.parse(12); // => throws ZodError

Зод можно использовать для создания типов Teartcript, поэтому у нас также есть все компиляционные временные добра.

export type FoodName = z.infer;

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

Само проверяя библиотека типа

Скорее всего, у вас есть внутренняя библиотека, чтобы поделиться своими обычными типами. Особенно, если вы являетесь или намерены использовать Micro Frestends.

То, что мы делаем в моей команде, — это использовать анализ Zod, чтобы убедиться, что эта библиотека типа всегда актуальна с нашими живыми форматами.

Обеспечением всех типов производственных типов точно соответствует нашим схемам, мы можем положиться на наши типы 100%. Назовите это контрактное тестирование, но мы также используем одни и те же схемы в нашем коде.

Это также не имеет воздействия временного времени. На самом деле, наши другие проекты не должны даже импортировать ZOD.

использование

Любой напечатанный проект может импортировать типы или Zod Schemas по желанию. Проекты Pure JS также могут использовать Zod Schemas, если хотите. Зод можно экспортировать в схему JSON, поэтому другие языки могут также получить пользу.

Во время развертывания библиотека типа ползает и проверяет типы API и CSR начальных реквизитов, убедившись, что схемы все правильные.

Оригинал: «https://dev.to/rsinohara/create-a-self-verifying-type-library-with-zod-2l74»