Как не разрешить неизвестные свойства после метода преобразования zod (TypeScript)
У меня есть функция API, которая, например, возвращает пользователя. Я хочу разобрать ответ сервера моему клиенту
User
тип. Скажем, например, я хочу объединить имя и фамилию пользователя в одну строку для использования в моем клиентском коде.
type User = {
uuid: string
email: string
fullName: string
}
const UserSchema: z.ZodSchema<User, z.ZodTypeDef, unknown> = z.object({
uuid: z.string().uuid(),
email: z.string().email(),
firstName: z.string(),
lastName: z.string()
}).transform(response => ({
uuid: response.uuid,
email: response.email,
fullName: `${response.firstName} ${response.lastName}`
}))
и это прекрасно работает с точки зрения TypeScript. Например, если я попытаюсь установить нестроковое значение в
fullName
внутри
transform
он показывает ошибку. НО это позволяет мне добавлять свойства к конечному результату без каких-либо ошибок:
...}).transform(response => ({
uuid: response.uuid,
email: response.email,
fullName: `${response.firstName} ${response.lastName}`,
// here is an extra value that should not be here because it
// doesn't exist in my client User type but TS allows it here
blablabla: true,
}))
у меня есть
strict
и
strictNullChecks
включен в моем файле tsconfig. Как я могу сделать ошибку видимой в таких случаях?