Búsqueda de sitios web

javascript - Typescript 2 + Angular definiciones de googlemaps en typescript


He creado una aplicación sencilla de Angular 4/Typescript v2.1.6. Estoy tratando de usar la definición de TypeScript de googlemaps (archivo .d.ts) como se especifica en https://www.npmjs.com/package/@types/googlemaps

Ejecuté el comando

npm install --save @types/googlemaps

Entonces en mi app.component.ts

import * as googlemaps from "googlemaps";

Cuando ejecuto

npm start

Recibo el siguiente error

error TS2306: File '/home/dev/project/node_modules/@types/googlemaps/index.d.ts' is not a module.

mi archivo tsconfig.json está en la carpeta src y la carpeta node_modules está al mismo nivel que src es decir:

/home/dev/project
  |_src
    |_app/
    |_tsconfig.json
  |_node_modules/
    |_@types/
      |_googlemaps/

El contenido de tsconfig.json es el siguiente. (También he probado sin las propiedades types/typeRoots)

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es2015",
      "dom"
    ],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true,
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "googlemaps"
    ]
  }
}

Puedo confirmar que el archivo index.d.ts también existe en la ubicación node_modules/@types/googlemaps/index.d.ts

No puedo averiguar qué me falta.

Respuesta #1

¡Instalé una versión antigua de Typescript y funcionó!

Tenía TypeScript 2.9 y instalé la 2.6 porque la nueva versión valida los módulos de manera diferente. O algo similar.

npm install [email 

Espero poder ayudarte. Saludos.

Artículos relacionados