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.
*. d. ts files are used to provide typescript type information about a module that's written in JavaScript, for example, underscore / lodash / aws-sdk. This will allow you to use the javascript modules without the need to convert them to ts without getting any type of error on your code.
d. ts files are called type declaration files. They exist for one purpose only: to describe the shape of an existing module and they only contain type information used for type checking.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With