'VsCode clean Typescript project no auto import suggestions
When I create a new Node project using Typescript, VsCode auto import suggestions do not work at all.
Steps to reproduce:
Create a workspace directory.
Run npm init
specifying main.ts
as entrypoint file.
Import typescript cli npm i typescript
Create tsconfig.json .\node_modules\.bin\tsc --init
Create main.ts containing console.log('Running');
Transpile using .\node_modules\.bin\tsc -w
Run by clicking Debug
in VsCode and using the default Nodejs launch config.
Import a library e.g. Rxjs Import typescript cli npm i rxjs
Result:
In main.ts attempting to use any Rxjs type Observable
, BehaviourSubject
, global operators from
of
sequenceEqual
etc results in no import assistance whatsoever.
I've read the VsCode Typescript docs, there is no hint there of what is wrong. https://code.visualstudio.com/docs/languages/typescript
I've tried explicitly setting include
and exclude
directories in tsconfig.json which also has no effect.
Do I need to manually set some module resolution options in tsconfig or something.
I have no idea, I'm at a loss as to why this doesn't work.
UPDATE:
I managed to get VsCode auto import working by specifying
"typeRoots": [ "node_modules" ]
...in tsconfig.json
The results in a minor issue which is that tsc now reports the error
error TS2688: Cannot find type definition file for '.bin'.
It appears the tsc now tries to read the contents of node_modules.bin which is not helpful. I've tried setting
"exclude": [ "./node_modules/.bin"]
in tsconfig, but that has no effect.
Solution 1:[1]
Try giving main.js
as your entrypoint not main.ts
Steps that I followed:
Create a workspace directory.
Run npm init specifying index.js
as entry point file.
Install typescript cli: npm i typescript
Create tsconfig.json: .\node_modules\.bin\tsc --init
Create index.ts containing console.log('Running');
Transpile using .\node_modules\.bin\tsc -w
Run by clicking Debug in VSCode and using the default Nodejs launch config.
Install a library e.g. Rxjs: npm i rxjs
Now in index.ts file: import { observable, BehaviorSubject } from "rxjs"
;
I was able to get those IntelliSense(import assistance)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Chirag Shah |