Подтвердить что ты не робот

Импорт node -модулей с TypeScript

Я пытаюсь заставить это работать, но я не могу найти решение в любом месте на SO. При попытке скомпилировать однопользовательское приложение:

import http = require('http')
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Используя команду "tsc app.ts -module" commonjs "" Я получаю следующую ошибку (не используя флаг -module, дает мне дополнительную ошибку, сообщающую мне, что мне нужно ее для компиляции внешних модулей):

error TS2071: Unable to resolve external module '"http"'.
error TS2072: Module cannot be aliased to a non-module type.
4b9b3361

Ответ 1

TypeScript должен знать, что http присутствует.

обновленный

Установите тип definitinos для узла:

npm install @types/node

Старый ответ

Выполняет эти два шага

PS: см. Образец тестового файла: https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node-tests.ts

Ответ 2

Я обнаружил, что у меня noResolve установлен true в моем файле tsconfig.json. Это вызывало ошибки со ссылками на файлы .d.ts, которые я включил в начало моих файлов TypeScript.

Ответ 3

Не должно быть что-то вроде

/// <reference path="node.d.ts" />
import http = module('http')

Я имею в виду, не следует ли использовать module вместо require?