2017-09-17 2 views
2

Je convertis un projet sortant en typecript. Le projet utilise un package ng-idle et il a @types package avec le nom angular-idle et le fichier contient @types/angular-idle/index.d.tsImporter des typages de paquets avec un nom différent

declare module 'angular' { 
    export namespace idle { 
     .... 

Comment importer ce paquet

import * as ngIdle from 'angular-idle' 

ou

import * as ngIdle from 'ng-idle' 

Répondre

1

Il sont quelques façons de le faire

import {idle} from 'angular' 
const blah = idle.BLAH 

Vous pouvez même renommer l'espace de noms à l'importation

import {idle as ng_idle} from 'angular' 
const blah = ng_idle.BLAH 

Si vous importez déjà angulaire

import * as angular from 'angular' 
import idle = angular.idle 
const blah = idle.BLAH 

(ou utiliser angular.idle directement)

+0

mais le nom du package est 'ng-idle' et 'angular-idle' et non' angular', donc le nom du paquet n'a rien à voir avec le nom spécifié entre guillemets lors de l'importation ?? –

+0

si j'utilise 'angular-idle' directement, webpack donne une erreur –

+0

Cela n'a pas d'importance. Ce qui compte pour le compilateur est 1) qu'il y ait un module nommé "angular" dans node_modules, 2) que le nom "idle" soit exporté dans les fichiers de définition du module externe "angular". Utilisez les importations ci-dessus et vérifiez [cet exemple] (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/angular-idle/angular-idle-tests.ts) pour l'utilisation –