TypeScript kļūst kļūda TS2304: nevar atrast nosaukumu ' require'
Es mēģinu iegūt savu pirmo TypeScript un DefinitelyTyped Node.js lietojumprogrammu, un sastopos ar dažām kļūdām.
Kad mēģinu transpilēt vienkāršu TypeScript Node.js lapu, saņemu kļūdu "TS2304: Can not find name 'require' ". Esmu izlasījis vairākus citus šīs kļūdas gadījumus vietnē Stack Overflow, un man šķiet, ka man nav līdzīgu problēmu. Es palaidu čaulas uzvednē komandu:
tsc movie.server.model.ts.
Šī faila saturs ir:
'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';
Kļūda tiek izmesta var mongoose=require('mongoose')
rindā.
Faila typings/tsd.d.ts saturs ir šāds:
/// <reference path="node/node.d.ts" />
/// <reference path="requirejs/require.d.ts" />
Atsauces uz .d.ts failiem tika ievietotas attiecīgajās mapēs un pievienotas typings/tsd.d.ts ar komandām:
tsd install node --save
tsd install require --save
Izveidotais .js fails, šķiet, darbojas pareizi, tāpēc es varētu ignorēt kļūdu. Taču es būtu pateicīgs, ja zinātu, kāpēc rodas šī kļūda un ko es daru nepareizi.
Jūs varat
Vai arī, lai iegūtu plašāku atbalstu, izmantojiet DefinitelyTyped's require.d.ts
Arī
var mongoose = require('mongoose')
vietā varat izmēģināt šādu variantuTā vietā:
Izmēģiniet:
t.i., vispirms norādiet atsauces ceļu.
Es atklāju, ka risinājums ir izmantot komandu TSD:
Kura pievieno/atjaunina
typings/tsd.d.ts
failu, un šajā failā ir visas mezgla lietojumam nepieciešamās tipa definīcijas.Savas datnes augšpusē es ievietoju atsauci uz
tsd.d.ts
šādā veidā:No 2016. gada janvāra prasība ir definēta šādi: