TypeScript får feil TS2304: cannot find name ' require'
Jeg prøver å få min første TypeScript og DefinitelyTyped Node.js-applikasjon i gang, og støter på noen feil.
Jeg får feilen "TS2304: Kan ikke finne navnet 'require' " når jeg prøver å transpile en enkel TypeScript Node.js-side. Jeg har lest gjennom flere andre forekomster av denne feilen på Stack & Overflow, og jeg tror ikke jeg har lignende problemer. Jeg kjører på shell-prompten kommandoen:
tsc movie.server.model.ts.
Innholdet i denne filen er:
'use strict';
/// <reference path="typings/tsd.d.ts" />
/* movie.server.model.ts - definition of movie schema */
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var foo = 'test';
Feilen kastes på linjen var mongoose=require('mongoose')
.
Innholdet i filen typings/tsd.d.ts er:
/// <reference path="node/node.d.ts" />
/// <reference path="requirejs/require.d.ts" />
.d.ts-filreferansene ble plassert i de aktuelle mappene og lagt til typings/tsd.d.ts ved hjelp av kommandoene:
tsd install node --save
tsd install require --save
Den produserte .js-filen ser ut til å fungere bra, så jeg kunne ignorere feilen. Men jeg vil sette pris på å vite hvorfor denne feilen oppstår og hva jeg gjør galt.
Du kan
Eller, for mer omfattende støtte, bruk DefinitelyTyped's require.d.ts
I stedet for
var mongoose = require('mongoose')
, kan du også prøve følgendeI stedet for:
Prøv:
dvs. referansebanen først.
Jeg fant ut at løsningen var å bruke TSD-kommandoen:
Som legger til / oppdaterer filen
typings/tsd.d.ts
, og den filen inneholder alle typedefinisjonene som kreves for en nodeapplikasjon.Øverst i filen min legger jeg en referanse til
tsd.d.ts
slik:Kravet er definert slik fra og med januar 2016: