here-maps-type-guards
v2.0.90
Published
A guarded version of the TypeScript type definitions for HERE Maps.
Downloads
328
Maintainers
Readme
here-maps-type-guards
A guarded version of the TypeScript type definitions for HERE Maps.
This module provides TypeScript type guards which assure TypeScript that a value of type unknown is actually a HERE Maps module. It can be thought of as a scoped version of the @types/heremaps module.
Installation
This module is available as npm package. It can be installed with the following command:
npm install here-maps-type-guards
It is not required to include any external type definition files in the tsconfig file in order to use here-maps-type-guards.
Guards
This module provides a guard for each of the submodules available from HERE Maps.
The guards are useful to ensure type safety and to do runtime checks at the same time.
Additionally the globally available H
object which HERE Maps attaches to the window is also exported. It is of type unknown and needs to be narrowed with at least one guard before it can be used.
isHereMaps
This is a guard which checks the availability of the core module.
import { H, isHereMaps } from 'here-maps-type-guards';
if (isHereMaps(H)) {
// H is not unknown anymore.
}
isHereMapsWithClusteringNamespace
This is a guard which checks the availability of the clustering module which includes a check for the core module.
import { H, isHereMapsWithClusteringNamespace } from 'here-maps-type-guards';
if (isHereMapsWithClusteringNamespace(H)) {
// H is not unknown anymore.
// H.clustering is also defined.
}
isHereMapsWithDataNamespace
This is a guard which checks the availability of the data module which includes a check for the core module.
import { H, isHereMapsWithDataNamespace } from 'here-maps-type-guards';
if (isHereMapsWithDataNamespace(H)) {
// H is not unknown anymore.
// H.data is also defined.
}
isHereMapsWithMapEventsNamespace
This is a guard which checks the availability of the mapevents module which includes a check for the core module.
import { H, isHereMapsWithMapEventsNamespace } from 'here-maps-type-guards';
if (isHereMapsWithMapEventsNamespace(H)) {
// H is not unknown anymore.
// H.mapevents is also defined.
}
isHereMapsWithServiceNamespace
This is a guard which checks the availability of the service module which includes a check for the core module.
import { H, isHereMapsWithServiceNamespace } from 'here-maps-type-guards';
if (isHereMapsWithServiceNamespace(H)) {
// H is not unknown anymore.
// H.service is also defined.
}
Motivation
I also wrote a blog post which explains why I actually created this module.