TypeScript typings geben mir "index.d.ts ist kein Modul"

9

Ich erhalte Datei node_modules/@types/webrtc/index.d.ts ist kein Modul mit diesem Code:

%Vor%

Ich habe die Typisierung mit npm i @types/webrtc --save-dev installiert. Der Mauszeiger über RTCPeerConnection in const peerConnection1 = new RTCPeerConnection(); zeigt Annotationen in Visual Studio-Code an, sodass mindestens der Code-Editor die Typen sieht. Das Ausführen von tsc (oder webpack mit ts-loader ) schlägt mit dem Fehler fehl.

Ich habe npm i webrtc --save in einem fehlgeleiteten Versuch versucht, dies zu lösen, aber es hat nichts geändert und ich möchte eigentlich nur die Typings, WebRTC ist genau dort im Browser, ich brauche kein Paket dafür. (Unterstützung beiseite.)

Die Datei index.d.ts ist in der Tat kein Modul, sie referenziert nur zwei andere Dateien mit Schnittstellen in ihnen. Also dachte ich mir, import * as webrtc from "webrtc"; zu entfernen, in der Hoffnung, dass die Typings irgendwie immer noch von tsc sichtbar sind. (Aber das ist unmöglich, da ich node_modules in der TypeScript-Konfigurationsdatei ausschließe.) Wenn ich das tue, wird RTCPeerConnection nicht mehr erkannt.

Das Hinzufügen von /// <reference src="node_modules/@types/webrtc/" /> hat nicht geholfen, tsc sagt Ungültige Syntax der Referenzdirektive .

Sie können ein Repository mit minimalem Repro hier auf GitLab anzeigen. Ich bin nicht so versiert in TypeScript Typings Erwerb also bitte vergib meine Unwissenheit, wenn ich das alles falsch mache.

    
Tomáš Hübelbauer 05.11.2016, 17:37
quelle

5 Antworten

18

webrtc ist Teil des Browsers; Sie versuchen ein Modul zu importieren. Importieren Sie einfach die (Typings) Bibliothek:

%Vor%

Möglicherweise müssen Sie "moduleResolution": "node" in den Compileroptionen verwenden.

Alternativ verwenden Sie die "types": ["webrtc"] -Compiler-Option und der Compiler wird diese Typen automatisch für Sie laden.

    
Meirion Hughes 05.11.2016, 17:52
quelle
4

Sie möchten wahrscheinlich

hinzufügen %Vor%

an Ihre tsconfig.json oder weniger bevorzugt an

%Vor%

in Ihren Quelldateien. Hier ist ein Beispiel dafür in Ihrem tsconfig.json :

%Vor%

Dies teilt TypeScript mit, dass es webrtc Deklarationen in Ihrem Build enthalten sollte

    
Daniel Rosenwasser 05.11.2016 22:41
quelle
0

Eine andere Option ist das Hinzufügen einer neuen Deklarationsdatei *.d.ts in Ihrem Modul, d. h .:

%Vor%     
Karolis Grinkevičius 08.09.2017 20:00
quelle
0

/// <reference types="@types/<your_types_module>" />

Sie möchten dies vielleicht tun oder auch nicht, abhängig von Ihren Build- und Style-Anforderungen, aber das scheint die schnelle (und schmutzige) Lösung zu sein.

    
youngrrrr 13.12.2017 20:32
quelle
-1

Sie müssen nichts importieren, führen Sie Folgendes aus:

  1. npm install --save @types/webrtc
  2. update tsconfig.json -

    "Typen": [       "@ Typen / webrtc"     ]

Sabir Hussain 05.07.2017 08:25
quelle