Búsqueda de sitios web

usar namespace como tipo en typescript


He instalado definiciones de tipos para Google Maps que declaran un espacio de nombres así:

namespace google.maps {
  export class Map {
    // ...
  }

  // ...
}

Así que si simplemente uso la API globalmente, funciona de manera hermosa:

const map = new google.maps.Map();

Para la capacidad de prueba unitaria, no quiero acceder a la API de manera global, sino inyectarla. Pero parece que no puedo indicar que una variable debería ser del tipo google.map

Así que esto no funciona:

function mapFactory(api: google.maps) {
    return new api.Map();
}

¿Alguna solución sobre cómo usar el espacio de nombres como un tipo?

Respuesta #1

Intenta :

function mapFactory(api: typeof google.maps) {
    return new api.Map();
}

Artículos relacionados