Я хочу типизировать значения широты и долготы. С ИИ вымучил такой код:
type Latitude = number & { _latitudeBrand: never };
function isLatitude(lat: number): lat is Latitude {
return lat >= -90 && lat <= 90;
}
const APIlist = {
earth: {
name: "Earth pictures by NASA",
// latitude of picture
lat: 0 as Latitude, // Используем тип Latitude
setLat(newLat: number): boolean {
if (isLatitude(newLat)) {
this.lat = newLat as Latitude;
return true;
}
return false;
},
},
};
Выглядит как костыль. Я начал углубляться в ТС недавно, поэтому пока испытываю трудности с кастомными валидаторами и продвинутыми типами. Буду благодарен также за любые советы, в т.ч. ссылки на интересности/книги.