@tostershmoster

Как типизировать числа с точкой и тире?

interface Address {
  street: string;
  suite: string;
  city: string;
  zipcode: '92998-3874';
  geo: {
    lat: -37.3159;
    lng: 81.1496;
  };
};

Как лучше типизировать zipcode, lat, lang?

Значения первого числа могут быть только: широта от −90 до +90, долгота от −180 до +180

Тут не нужны все возможные варианты для zipcode, просто интересно знать как типизировать такой вариант.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
В принципе ts позволяет при желании извратиться и побуквенно наклепать нужные типы:
type Lettrer = 'a' | 'b' | ...
type Digit = 1 | 2 | ...
...

Но делать так, очевидно, не стоит. :)
Оставьте просто string и просто number.
Разве что для удобства чтения и понимания (а также как задел на случай если ts поумнеет в будущем и сможет в более сложные типы) сделайте так:
type ZipCode = string;
type GeoCoord = number;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@StiflerProger
Вот такой вариант playground

type Coord =`${number}.${number}`;
type Zipcode =`${number}-${number}`;

let a: Coord = '-3.3' // ok
let b: Coord  = "-81." // error
let c: Coord  = "123.00" // ok

let d: Zipcode = '4565' // error
let e: Zipcode = '4565-' // error
let f: Zipcode = '4565-2' // ok
let g: Zipcode = '4565-2-2' // error
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы