У меня есть псевдоним типа, представляющий собой большое объединение.
type ErrorMsg =
| { message: 'oops', data: number }
| { message: 'opa' }
| { message: 'oopsie', data: string }
| { message: 'ouch' }
| ...
Теперь у меня будет другое определение, использующее ErrorMsg. Для простоты предположим, что
type NumberValidator<E> = (n: number) => E | 'ok'
Проблема в том, что при работе с Validator<ErrorMsg>
TypeScript действительно любит выдавать мне сообщения об ошибках, включающие весь этот союз типов, а не имя его псевдонима, если я явно не укажу псевдоним в ручной аннотации.
Есть ли какой-нибудь трюк, который может заставить TypeScript «говорить» в терминах псевдонима при создании ошибок и предполагаемых типов?
Я просто говорю о типичных Ошибки TypeScript, похожие на Argument of type Validator<long, long list> is not assignable to type Validator<another long, long list>
, а также гигантские типы, присутствующие в предполагаемых типах, которые появляются при наведении курсора на определение в редакторе.
Спасибо!