nodejs necesită fișierul typescript interior

voturi
60

Mă întreb cum să încărcați modulul nodejs regulate din node_modulesdirectorul din interiorul TypeScriptclasa.

Când încerc să compilați .tsfișier care conține:

var sampleModule = require('modulename');

compilator îmi spune că nu pot folosi în acest domeniu de aplicare necesită. (Această linie este la începutul fișierului).

Există o modalitate de modul de încărcare și modulele de utilizare din node_modulesinteriorul TypeScriptclasa?

Întrebat 05/10/2012 la 09:05
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
77

Typescript va plânge întotdeauna când acesta este în imposibilitatea de a găsi un simbol. Compilatorul vine împreună cu un set de definiții implicite pentru window, documentși astfel sunt specificate într - un fișier numit lib.d.ts. Dacă fac un grep requireîn acest dosar nu pot găsi nici o definiție a unei funcții require. Prin urmare, trebuie să spunem compilatorului noi înșine că această funcție va exista în timpul rulării folosind declaresintaxa:

declare function require(name:string);
var sampleModule = require('modulename');

Pe sistemul meu, acest compilează foarte bine.

Publicat 05/10/2012 la 09:26
sursa de către utilizator

voturi
30

Sintaxa corectă este:

import sampleModule = require('modulename');

sau

import * as sampleModule from 'modulename';

Apoi compilați mașina de scris cu --module commonjs.

În cazul în care pachetul nu vine cu un index.d.tsfișier și este package.jsonnu are o "typings"proprietate, tscva latra că nu știe ce 'modulename'se referă. În acest scop , aveți nevoie pentru a găsi un .d.tsfișier pentru ea pe http://definitelytyped.org/ , sau scrie unul singur.

Dacă scrieți codul pentru Node.js veți dori , de asemenea, node.d.tsfișierul de la http://definitelytyped.org/ .

Publicat 03/02/2016 la 07:47
sursa de către utilizator

voturi
16

Cea mai bună soluție este de a obține o copie a definițiilor de tip nodului. Acest lucru va rezolva toate tipurile de probleme de dependență, nu numai require(). Acest lucru a fost realizat anterior folosind pachete cum ar fi typings, dar , după cum sa menționat Mike Chamberlain, Typings sunt depreciate. Modul modern , este o face în felul următor:

npm install --save-dev @types/node

Nu numai că va remedia eroarea compilator, se va adăuga, de asemenea, definițiile API Node IDE.

Publicat 18/10/2017 la 21:20
sursa de către utilizator

voturi
4

Utilizați typings pentru a avea acces la funcțiile de nod de la masina de scris:

typings install env~node --global

Dacă nu aveți typings-l instalați:

npm install typings --global
Publicat 29/12/2016 la 09:42
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more