最安全的转换界面方式

时间:2018-05-02 00:08:25

标签: angular typescript

我有:

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>
}

虽然它没有代码破解,但我还没有看到有关如何处理这个问题的详细信息。我个人喜欢latlng短片,但如果它需要像整个额外功能那样广泛的东西,我显然愿意放弃它们。

那么,解决这个问题的最佳方法是什么?我应该放弃它,只是使用全名或者是否有我遗漏的东西?

1 个答案:

答案 0 :(得分:2)

是:

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

最好选择更接近输入数据的数据结构(API响应等),只要这不会导致任何其他问题。在相反的情况下,这可能是合理的,因为lnglat的可读性较差。在这种情况下,我会亲自使用longitudelatitude,因为这样可以跳过其他转换。