#typescript
В javascript разработки мы обычно используем assert в коде тестов, но не в коде приложения. Мой опыт работы с koa читабельность кода с assert получается выше.
Пример из библиотеки koa:
ctx.assert(ctx.state.user, 401, 'User not found. Please login!');Т.е. если пользователь не найден, будет выкинута ошибка с указанным текстом и статусом 401. Дальше по коду вы можете быть уверены, что
ctx.state.user определен. Для этого используется пакет http-assert. Причем TypeScript автоматически изменит тип выражения. Это достигается за счет использования Assertion Functions, который появились с версии 3.7. Пример такой функции:
function assertIsString(val: any): asserts val is string { if (typeof val !== "string") { throw new AssertionError("Not a string!"); }}К сожалению, Nest.js и Fastify из коробки не имеют встроенного assert, поэтому приходиться писать свой маленький хелпер. Оставлю его вам на самостоятельную реализацию.