Búsqueda de sitios web

typescript - No se puede importar el módulo toastr con Angular 2


Estoy creando una aplicación Angular 2 con la versión 2.0.0-alpha.46 y estoy intentando importar el módulo toastr.

He descargado la biblioteca y también he descargado el archivo definitivamente tipado.

En mi página html, agrego una etiqueta <script> para el archivo .js:

<script src="./src/libs/toastr/toastr.min.js"></script>

En Visual Studio Code, intento importar el módulo así:

import * as toastr from 'toastr';

Entonces puedo llamar a toastr.info('mensaje') en mi componente; incluso obtengo intellisense. Sin embargo, cuando realmente intento cargar la página web, obtengo un error 404 /src/toastr no encontrado.

Si intento ser explícito sobre encontrar el archivo tipado definitivamente de toastr:

import * as toastr from '../../definitions/toastr/toastr';

Recibiré "[ruta completa al módulo ts] no es un módulo."

También he intentado agregar ///<reference path="../../toastr.d.ts" /> al inicio del archivo que estoy usando para importar el módulo, sin éxito.

¿Alguien tiene una idea de lo que puede estar pasando? No se me ocurre qué podría estar mal. Gracias de antemano.

Respuesta #1

Creo que el archivo toastr.min.js no contiene un módulo en absoluto. Mi comprensión es que los archivos de definición de TypeScript te ayudan a definir los métodos y estructuras utilizados por la biblioteca toastr. Esto es útil dentro de tu IDE para la autocompletación de código. Este archivo de definición en realidad no crea un módulo que pueda usarse en tiempo de ejecución...

Esto significa que puedes usar directamente el objeto toastr sin tener que importarlo así: import * as toastr from ''...';.

Aquí está el plunkr correspondiente: https://plnkr.co/edit/wzdoisKBrZYTeSX8r7Nd?p=preview.

Espero que eso tenga sentido. Thierry

Artículos relacionados