node.js - Importera Node-moduler i TypeScript


Hur kan jag importera Node-moduler som finns i mappen node_modules i TypeScript?

Jag får ett felmeddelande (Namnet ''async'' finns inte i den aktuella omfattningen) när jag försöker kompilera följande TypeScript-kod:

// Converted from: var async = require('async');
import async = module('async');

Svar #1

Du behöver skapa en definitionsfil och inkludera detta:

module "async" {}

lägg sedan till en referens till denna definitionsfil i din TypeScript-kod

///<reference path='definition-file.d.ts' />

import async = module('async');

Svar #2

Den standardiserade "import blah=require('x')"-semantiken i TypeScript fungerar helt enkelt inte med Node-moduler.

Det enklaste sättet att arbeta runt detta är att definiera ett gränssnitt och använda require uttryckligen, istället för import:

// You can put this in an external blah.d file if you like; 
// remember, interfaces do not emit any code when compiled.
interface qOrm {
    blah:any;
}

declare var require:any;
var qOrm:qOrm = require("../node_modules/q-orm/lib/q-orm");

var x = qOrm.blah;

Relaterade artiklar