javascript - Saknas intellisense vid import av .ts-fil i .js-fil
Jag försöker använda tsx för att köra en NodeJS-applikation som består av JavaScript- och Typescript-moduler. JavaScript-modulerna är ESM, inte CommonJS. Till exempel har jag dessa filer:
// provider.ts
export funcA(p: unknown): unknown {...}
// consumer.js
import * as provider from "./provider.ts"
provider.funcA("foo");
Den fungerar väldigt bra med tsx. VScodes intellisense fungerar bra i TS-filer men inte i JS-filer. När jag håller muspekaren över provider visar det import provider och jag har ingen autokomplettering alls. Här är min tsconfig.json:
{
"compilerOptions": {
"module": "NodeNext",
"target": "ESNext",
"allowJs": true,
"strict": true,
},
"include": [
<the directory containing both JS and TS files>
],
}
Hur kan jag få Intellisense att fungera i VSCode för TS-importer i mina JS-filer?
Svar #1
Jag hittade en lösning. Det verkar som att TypeScript inte kan förstå när jag importerar en .ts-modul.
Jag var tvungen att ta bort .ts-delen av importen. Jag var tvungen att lägga till "moduleResolution": "Node" i min tsconfig.json för att ta bort upplösningsfel.
Jag fick också lite problem med min eslint-konfiguration. Jag installerade paketen @typescript-eslint/parser och eslint-import-resolver-typescript och lade till detta i min .eslintrc.json:
"extends": [
...
"plugin:import/typescript"
],
...
"settings": {
"node": {
"tryExtensions": [".js", ".node", ".ts"]
}
}
Nu fungerar det. Jag får full Intellisense i min JS-fil.
