NodeJS erfordern innerhalb Typoskript Datei

stimmen
60

Ich frage mich , wie von normalen NodeJS Modul laden node_modulesVerzeichnis von innen TypeScriptKlasse.

Wenn ich versuche zu kompilieren .tsDatei , die enthält:

var sampleModule = require('modulename');

Compiler sagt mir, ich kann nicht in diesem Umfang erfordern verwenden. (Diese Zeile am Anfang der Datei).

Gibt es eine Möglichkeit , wie zu laden und zu verwenden Module von node_modulesinnen TypeScriptKlasse?

Veröffentlicht am 05/10/2012 um 09:05
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
77

Typoskript wird immer beschweren , wenn es nicht in der Lage ist , ein Symbol zu finden. Der Compiler kommt zusammen mit einer Reihe von Standarddefinitionen für window, documentund so in einer Datei angegebenen genannt lib.d.ts. Wenn ich einen grep für tue requirein dieser Datei kann ich keine Definition einer Funktion finden require. Daher haben wir dem Compiler selbst sagen , dass diese Funktion zur Laufzeit mit der existieren declareSyntax:

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

Auf meinem System stellt dies nur in Ordnung.

Beantwortet am 05/10/2012 um 09:26
quelle vom benutzer

stimmen
30

Die korrekte Syntax ist:

import sampleModule = require('modulename');

oder

import * as sampleModule from 'modulename';

Dann stellen Sie Ihre Typoskript mit --module commonjs.

Wenn das Paket mit einer nicht kommt index.d.tsDatei und es ist package.jsonkeine haben "typings"Eigenschaft, tscbellen , dass sie nicht weiß , was 'modulename'bezieht. Dazu benötigen Sie einen finden .d.tsDatei für sie auf http://definitelytyped.org/ , oder selbst eine Beurteilung schreiben.

Wenn Sie Code für Node.js schreiben möchten , dass Sie auch die node.d.tsDatei aus http://definitelytyped.org/ .

Beantwortet am 03/02/2016 um 07:47
quelle vom benutzer

stimmen
16

Die beste Lösung ist eine Kopie des Knotens Typdefinition zu erhalten. Dadurch werden alle Arten von Abhängigkeitsprobleme lösen, nicht nur require(). Dies wurde zuvor unter Verwendung von Paketen getan wie typings, aber wie Mike Chamberlain erwähnt, sind Typisierungen veraltet. Die moderne Art und Weise ist es , wie dies zu tun:

npm install --save-dev @types/node

Nicht nur wird es den Compiler Fehler beheben, wird es auch die Definitionen der Knoten API zu Ihrem IDE hinzuzufügen.

Beantwortet am 18/10/2017 um 21:20
quelle vom benutzer

stimmen
4

Verwenden Typisierungen zu Knotenfunktionen von Maschinenschrift zuzugreifen:

typings install env~node --global

Wenn Sie nicht Typisierungen es haben installieren:

npm install typings --global
Beantwortet am 29/12/2016 um 09:42
quelle vom benutzer

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