2013-12-13 3 views
0

Я конвертирую свой проект NodeJS + ExpressJS в машинопись, и я получил определение машинного текста для ExpressJS от https://github.com/borisyankov/DefinitelyTyped.Можно ли включить модуль NodeJS в проект TypeScript с «import»

Перед машинопись я импортировал Экспресс с «требуют» заявления

var express = require("express") 

Нет мне нужно импортировать его в пути, что я могу использовать машинопись Синтаксис и возможности, обеспечивая при этом Машинопись компилятор компилирует его в заявлении, показанном выше. Вот код, который я написал:

/// <reference path="express.d.ts" /> 
import express = require("express"); 
var app = express.express(); 
app.use(express.logger()); 

Это, однако, бросает ошибку: Unresolved function or method express() на:

var app = express.express(); 
+0

Does файл определения еще не объявляет пространство имен «express»? Может быть, это вызывает столкновение имен? – thomaux

+0

Явное пространство имен есть. Но внутри него нет функции express(). Я добавил это вручную и, похоже, сейчас работает. – EternallyCurious

ответ

4

Я считаю, что должно быть:

import express = require('express'); 
var app = express(); 

Смотрите пример: https://github.com/borisyankov/DefinitelyTyped/blob/master/express/express-tests.ts#L3-L4

+0

Привет, Вы указали мне на «express-tests.ts», и я использую «express.d.ts». Какая разница? Какой я должен добавить в свой проект? Я получил эту работу в конечном итоге, но мне пришлось добавить функцию «express()» вручную в файл express.d.ts. – EternallyCurious

+0

Вам следует импортировать 'express.d.ts'. Файл 'express-tests.ts' показывает вам, как вы можете использовать' express.d.ts' в своем приложении. – basarat

Смежные вопросы