web-dev-qa-db-fra.com

Impossible de trouver typings.d.ts et de déclarer des modules dans l'application TypeScript angulaire 2

Je suis nouveau sur TypeScript et Angular 2. Je dois installer une dépendance npm et l'utiliser dans mon application angular 2.

La dépendance est https://www.npmjs.com/package/ng2-stomp-service

J'ai installé les packages nécessaires, mais je dois ajouter les éléments suivants à mon fichier typings.d.ts.

declare module 'stompjs';
declare module 'sockjs-client';

Je ne parviens pas à trouver le fichier typings.d.ts dans mon projet.

J'ai essayé ce qui suit jusqu'ici,

npm install typings --global
npm install @types/stompjs
npm isntall @types/sockjs-client
typings install dt~stompjs --save
typings install dt~sockjs-client --save

J'ai le fichier typings.json avec le contenu,

{
  "dependencies": {
    "sockjs-client": "registry:dt/sockjs-client#1.0.3+20160727010356",
    "stompjs": "registry:dt/stompjs#2.3.0+20161111105645"
  }
}

Lorsque je lance mon application angulaire 2 avec npm start, l'erreur est générée comme suit

ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (27,2): Member 'config' implicitly has an 'any' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (36,2): Member 'queuePromises' implicitly has an 'any[]' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (83,32): Parameter 'str' implicitly has an 'any' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (132,53): Parameter 'response' implicitly has an 'any' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (27,2): Member 'config' implicitly has an 'any' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (36,2): Member 'queuePromises' implicitly has an 'any[]' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (83,32): Parameter 'str' implicitly has an 'any' type.
ERROR in D:/Userfiles/subramanians/projects/hand-cricket/node_modules/ng2-stomp-service/dist/stomp.service.ts (132,53): Parameter 'response' implicitly has an 'any' type.

Je ne suis pas sûr de ce qui cause le problème, je suppose que c'est parce que je n'ai pas déclaré les modules dans typings.d.ts

S'il vous plaît donnez votre avis. Je vous remercie.

5
LINGS

Mes deux cents à cette conversation:

Dans votre fichier tsconfig.json, assurez-vous d'avoir le bon chemin pour votre fichier typings.d.ts.

"typeRoots": [ "node_modules/@ types", "../src/typings.d.ts" ],

4
Amadeus Sánchez

Si vous n'utilisez pas la nouvelle version de angular, vous ne pouvez pas trouver le fichier typings.d.ts dans votre projet. Ma suggestion est de mettre à jour votre projet en utilisant CLI angulaire https://cli.angular.io/

2
Devsullo

Il semble que votre compilateur TypeScript tente de compiler des fichiers à partir du répertoire node_modules

Assurez-vous d'avoir cette règle d'exclusion dans votre fichier tsconfig.json:

{ 
  "compilerOptions": {},
  "exclude": [
    "node_modules"
  ]
}

Btw. vous n'avez besoin que de l'un des @types et typings. Le second est obsolète. Tout ce dont vous avez besoin, ce sont des packages @types appropriés, inclus dans vos dépendances dev. J'espère que ça aide!

EDIT: Je pense qu'il ne devrait y avoir aucun fichier TypeScript dans le paquet npm, j'ai donc créé une rubrique avec une correction sur le github de ce référentiel: https://github.com/devsullo/ng2-STOMP-Over-WebSocket/ questions/5

1
Daniel Kucal