I am getting File node_modules/@types/webrtc/index.d.ts is not a module with this code:
import * as webrtc from "webrtc";
const peerConnection1 = new RTCPeerConnection();
I have installed the typings using npm i @types/webrtc --save-dev
. Hovering over RTCPeerConnection
in const peerConnection1 = new RTCPeerConnection();
display type annotations in Visual Studio Code so at least the code editor sees the types. Running tsc
(or webpack
with ts-loader
) fails with the error.
I have tried npm i webrtc --save
in a misguided attempt for solving this, but it did not change anything and I really only want the typings anyway, WebRTC is right there in the browser, I don't need a package for that. (Support aside.)
The index.d.ts
file indeed is not a module, it just references two other files with interfaces in them. So I thought to remove import * as webrtc from "webrtc";
hoping the typings will still be visible by tsc
somehow. (But that's impossible since I exclude node_modules
in TypeScript config file.) When I do that RTCPeerConnection
is no longer recognized.
Adding /// <reference src="node_modules/@types/webrtc/" />
did not help, tsc
says Invalid reference directive syntax.
You can view a repository with minimal repro here on GitLab. I am not too well versed in TypeScript typings acquisition so please forgive my ignorance if I'm going about this all wrong.
webrtc is part of the browser; you're trying to import a module. Simply import the (typings) library:
import "webrtc";
you may need to use "moduleResolution": "node"
in the compiler options.
Alternatively use the "types": ["webrtc"]
compiler option and the compiler will automatically load those types up for you.