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;
