Самый безопасный способ конвертировать интерфейс - PullRequest
0 голосов
/ 02 мая 2018

у меня есть:

navigator.geolocation.getCurrentPosition((pos: Position) => {
    this.navigation = pos.coords;
}

И

interface INavigation {
    lat: number;
    lng: number;
    <additional parameters>
}

Но position.coords выглядит так:

{
    latitude: number;
    longitude: number;
    <additional parameters>
}

Хотя это и не нарушает код, я не видел много подробностей о том, как справиться с этим. Лично мне нравятся короткие сокращения lat и lng, но я, очевидно, был бы готов отказаться от них, если бы для этого потребовалось что-то обширное, например, целая дополнительная функция.

Итак, как лучше всего позаботиться об этом? Должен ли я отказаться от него и просто указать полное имя или я что-то упустил?

1 Ответ

0 голосов
/ 02 мая 2018

Это:

navigator.geolocation.getCurrentPosition((pos: Position) => {
    const { longitude, latitude, ...props } = pos.coords;
    this.navigation = { lng: longitude, lat: latitude, ...props };
}

Желательно выбирать структуру данных, которая ближе к входным данным (ответы API и т. Д.), Если это не вызывает никаких других проблем. Это может быть оправдано в противоположном случае, потому что lng и lat менее читабельны. В этом случае я бы лично использовал longitude и latitude, потому что это позволяет пропускать дополнительные преобразования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...