функцией-тайп-гардом?
То есть что-то такое:
function assertType<T>(
value: unknown,
check: (value: unknown): value is T => boolean
): asserts value is T {
if (!check(value)) {
throw new Error('Type Error');
}
}
https://www.typescriptlang.org/play?ssl=4&ssc=1&pln=5&pc=1#code/GYVwdgxgLglg9mABAQwM6oKYCcoBUCeADhgDy4B8AFAFCKIBuyANiBgFyLgDWYcA7mAA0tRBAAWGCFw6VGLdpzA9+YAJQc5rRDFSJciALzlEAIzhwmGZGGrqU6bFF2aM23foDeImMESUAhOKSXLLMrKqqiF50dFBiWPyIYBh8iACiWAlYlADkBMTpmXBYOaoA3CIAvtTVQA
check: (value: unknown) => value is T
Обсуждают сегодня