Есть ли способ применить машинописный текст к еще более строгой проверке типов, вплоть до проверки псевдонимов?
Чего я хочу добиться, так это определить типы, такие как:
type kilograms = number;
type kilometers = number;
type kilogramsPerKilometer = number;
И чтобы быть уверенным, что я не помещаю неправильно введенное значение в переменную, например:
let x: kilograms = 123;
let y: kilometers = 256;
let z: kilogramsPerKilometer = x / y; // Will popup an error here saying that types are incompatible
В этом случае потребуется явное приведение типа:
let x: kilograms = 123;
let y: kilometers = 256;
let z: kilogramsPerKilometer = <number>x / <number>y; // Will downcast `kilograms` and `kilometers` types to `number` and then up-cast types to `kilogramsPerKilometer`