Проверка типов в приложениях Javascript становится все более и более нормализованной с помощью Typescript. Однако одна из распространенных жалоб на Typescript заключается в том, что он не обеспечивает безопасность типов в среде выполнения. ZOD может решить эти проблемы, поскольку он предлагает проверки безопасности типов во время выполнения, обратите внимание, что это работает в сочетании с Typescript!

Небольшой отказ от ответственности: это не дисс в Typescript. Это потрясающе и значительно ускоряет написание кода, поскольку мгновенно сообщает об ошибках в среде IDE, но немного больше безопасности никому не повредит.

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

Что такое ЗОД?

По определению создателей этого пакета:

Zod — это библиотека объявления и проверки схемы, основанная на TypeScript. Я использую термин "схема" для общего обозначения любого типа данных, от простого string до сложного вложенного объекта.

Сладкий! Удивительно то, что он работает во время выполнения, поэтому мы можем чувствовать себя значительно безопаснее, чем мы ожидаем от API, и Typescript будет на самом деле соответствовать ответу от API.

Установка

Давайте продолжим и сначала установим библиотеку:

npm install zod typescript

Убедитесь, что в вашем tsconfig.json у компилятора для параметра strict установлено значение true.

{ 
    // ... 
    "compilerOptions": { 
        // ... 
        "strict": true 
    } 
}

Достаточно легко. Теперь мы можем начать кодировать. В этом примере мы будем использовать Pokemon API, чтобы быстро сделать что-то доступным для всех. Подробнее о нем — здесь.

Схема

ZOD работает, имея схему типа и затем проверяя ее. Если бы я хотел просто проверить строку, я бы создал следующее:

Применить это к API довольно просто, так как нам просто нужно знать объект ответа.

Теперь давайте быстро создадим несколько простых запросов на выборку, чтобы проверить это.

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

Заключение

Вот и все! Это очень простая библиотека для реализации, но вы можете увидеть большие преимущества в уверенности приложения во время выполнения.

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

https://codesandbox.io/embed/zod-type-check-09g3c?fontsize=14&hidenavigation=1&theme=dark

Первоначально опубликовано на https://relatablecode.com 13 февраля 2022 г.