here-maps-type-guards
TypeScript icon, indicating that this package has built-in type declarations

2.0.82 • Public • Published

here-maps-type-guards

A guarded version of the TypeScript type definitions for HERE Maps.

version

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.

Package Sidebar

Install

npm i here-maps-type-guards

Weekly Downloads

59

Version

2.0.82

License

MIT

Unpacked Size

931 kB

Total Files

105

Last publish

Collaborators

  • chrisguttandin