Kan inte hitta typings.d.ts och deklarera moduler i Angular 2 TypeScript-app


Jag är ny på Typescript och Angular 2. Jag behöver installera ett npm-beroende och använda det i min Angular 2-app.

Beroendet är https://www.npmjs.com/package/ng2-stomp-service

Jag har installerat de nödvändiga paketen, men jag behöver lägga till följande i min typings.d.ts-fil

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

Jag kan inte hitta filen typings.d.ts i mitt projekt.

Jag har försökt följande hittills,

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

Jag har en typings.json-fil med innehåll,

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

När jag kör min Angular 2-app med npm start får jag följande fel

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.

Jag är inte säker på vad som orsakar problemet, jag gissar att det är för att jag inte har deklarerat modulerna i typings.d.ts

Var vänlig och rådgör. Tack.

Svar #1

Mina två ören i denna konversation:

I din tsconfig.json-fil, se till att du har rätt sökväg för din typings.d.ts-fil

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

Svar #2

Det verkar som om din Typescript-kompilator försöker kompilera filer från node_modules-katalogen.

Se till att du har denna uteslutningsregel i din tsconfig.json-fil:

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

Förresten, du behöver bara en av @types och typings. Den andra är föråldrad, allt du behöver är rätt @types-paket inkluderade i dina utvecklingsberoenden. Hoppas det hjälper!

REDIGERA: Jag tror att det inte borde finnas några Typescript-filer i npm-paketet, så jag har skapat ett ämne med en fix på denna repositories GitHub: https://github.com/devsullo/ng2-STOMP-Over-WebSocket/issues/5

Relaterade artiklar