javascript - vscode - erstat TypeScript-definitioner med node_modules-definitioner


Jeg er en stor fan af vscode. Her er mit spørgsmål, lad os sige, at jeg har en kode som denne.

const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))

når jeg CMD+Click på express (inden i require) eller på get-funktionen, tager det mig til dens TypeScript-definition, som er gemt i hjemmemappen. Når jeg rydder cachen, tager det mig til definitionerne inde i node_modules, og cachen bliver bygget igen. Mens der i WebStorm ikke er nogen TypeScript-cache, tager det mig direkte til definitionen i node_modules. Er det muligt at deaktivere TypeScript-definitioner og bruge node_modules-definitionerne??

Som vist på billedet, når jeg klikker på express, tager det mig til TypeScript-definitionen, ikke den fra node_modules.

Der er en indbygget udvidelse kaldet TypeScript and JavaScript Language Features (vscode.typescript-language-features). Vil det virke at deaktivere den ?? Jeg ved det ikke, men jeg er bange for, at jeg mister javascript intellisense.

Er der nogen, der ved det???

Svar #1

„Cachen“ bygges af en funktion kaldet Automatisk Typeindhentning. Du kan deaktivere den ved at sætte VS Codes typescript.disableAutomaticTypeAcquisition-indstilling til true eller ved at oprette en jsconfig.json-fil, der indeholder {"typeAcquisition": {"enable": false}}. Du skal stadig manuelt fjerne tidligere downloadede typeerklæringer for, at links kan lede dig til implementerings-JavaScript-filerne. Se dette svar for nogle yderligere relaterede oplysninger.

Svar #2

Cachen er højst sandsynligt genereret af den nævnte udvidelse. Du bør ikke bruge den til at få Typescript-typninger, fordi Typescripts intellisense fungerer rigtig godt direkte.

Glem ikke at installere typings for hver JS-pakke.

npm install @types/express -D

Også i Typescript bør du bruge import i stedet for require:

import * as express from 'express' 

Relaterede artikler