node.js - Varför behöver jag inte typdefinitioner för node när jag arbetar med Typescript?


När jag använder nodejs med Typescript tillåter det mig att använda moduler från nodejs (som fs) trots att jag inte installerade @types/node.

Varför? Är de på något sätt inbakade?

Svar #1

Det kräver @types/node:

echo "import * fs fs from 'fs';" > test.ts
tsc test.ts

Resultat i

test.ts:1:21 - error TS2307: Cannot find module 'fs'.

1 import * as fs from 'fs';

Sedan gör en

npm install @types/node
tsc test.ts

fungerar bra.

Har du möjligtvis @types/node installerat globalt?

Svar #2

När du använder ett beroende som redan har ett beroende på @types/node, behöver du inte definiera @types/node-beroendet själv eftersom det blir hoistat.

Du kan ta reda på om det är hoistat genom att köra yarn why @types/node, vilket kommer att visa dig information om varför ett paket är installerat.

Relaterade artiklar