Я знаю, как определить предикат пользовательского типа:
type UnsignedInteger = number;
function isUnsigned (s: number): s is UnsignedInteger {
return s > -1
}
Но как я могу получить такую ошибку, если я попытаюсь назначить неверный номер?
const a: UnsignedInteger = -1 // Compiler error: cannot assign...
UnsignedInteger
какnumber
, так что это то же самое, что иconst a: number = -1;
, что, конечно, не дает ошибки. Typescript имеет структурные типы, а не номинальные типы. - person kaya3   schedule 15.04.2021