Скажем, у меня есть два типа чисел, которые я отслеживаю как latitude
и longitude
. Я хотел бы представить эти переменные с помощью базового примитива number
, но запретить присваивание переменной longitude
a latitude
в typescript.
Есть ли способ подкласса примитив number
, чтобы typescript обнаружил это назначение как незаконное? В некотором роде для принудительного номинального ввода текста, чтобы этот код не удался?
var longitude : LongitudeNumber = new LongitudeNumber();
var latitude : LatitudeNumber;
latitude = longitude; // <-- type failure
Ответ на "Как продлить примитивный тип в typescript?" кажется, что он поместит меня в правильном направлении, но я не уверен, как чтобы расширить это решение для создания отдельных номинальных подтипов для разных видов.
Нужно ли обертывать примитив? Если да, могу ли я заставить его вести себя довольно легко, как нормальное число, или мне нужно будет ссылаться на под-член? Могу ли я как-то создать подкласс числа typescript для компиляции-времени?