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'
