Я хотел бы расширить прототип внешней библиотеки в TypScript (1.8). Внешняя библиотека в моем случае - google.maps, для которой я включил файл определения описаний от NuGet. Теперь я хочу, чтобы расширить прототип google.maps.LatLng, добавив функцию расстояния как и в файле «extensions.ts»:Расширение прототипа из внешней библиотеки в Typcript
/// <reference path="./google.maps.d.ts" />
export {}
declare global {
interface google.maps.LatLng {
distanceTo(google.maps.LatLng): number;
}
}
google.maps.LatLng.prototype.distanceTo = function(other) {
return google.maps.geometry.spherical.computeDistanceBetween(this, other);
}
Тогда я хочу, чтобы использовать его:
import "./extensions.ts"
let p1 = new google.maps.LatLng(5, 5);
let p2 = new google.maps.LatLng(10, 10);
console.log(p1.distanceTo(p2))
Однако этот код не работает со многими ошибками:/ Каков правильный способ его решения? Расширение глобальных объявлений, таких как Array или String, работает так, как указано here.
Примечание: полученный файл на работу вы должны также включать в себя Google Maps библиотеки JavaScript:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&key=[your-key-here]&sensor=FALSE"></script>
Я сделал тест во время выполнения, и она работает. Большое спасибо :) – Crine