Помогите пожалуйста разобраться со значением команды declare в angular.
Я подключил гугл-карты в фрэймворк angular. Подключил напрямую, то есть без использования модулей и прочих готовых решений. Пользовался при этом каким-то туториалом на ютубе. Всё ок, карта работает.
Проблема в том, что мне хотелось бы разобраться в деталях. А именно как фрэймворк видит библиотеку гугл-карт, которую я подключил в index.html (а значит вне корневого тега фрэймворка):
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Gmap1</title>
<base href="/">
<script src="https://maps.googleapis.com/maps/api/js?key=blabla" async defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>
Так выглядит компонент:
import { Component, OnInit } from '@angular/core';
declare var google: any;
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
private map: any;
ngOnInit() {
this.initMap();
}
private initMap(): void {
let mapEl = document.getElementById('map');
let mapOptions = {
center: new google.maps.LatLng(51, 7),
zoom: 8
};
this.map = new google.maps.Map(mapEl, mapOptions);
};
}
Интуитивно я понимаю, что связь осуществляется через declare. Но что это за команда и как она работает мне не понятно.