web-dev-qa-db-fra.com

Importation de modules de nœuds avec TypeScript

J'essaie de faire fonctionner cela, mais je n'arrive pas à trouver de solution n'importe où sur SO. Lorsque vous essayez de compiler cette application à fichier unique:

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/');

En utilisant la commande "tsc app.ts --module 'commonjs'", j'obtiens l'erreur suivante (ne pas utiliser l'indicateur --module me donne une erreur supplémentaire me disant que j'en ai besoin pour compiler des modules externes):

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

TypeScript doit savoir que http est présent.

Mis à jour

Installez le type definitinos pour le noeud:

npm install @types/node

Ancienne réponse

Suit ces deux étapes

PS: Voir un exemple de fichier de test: https://github.com/borisyankov/DefinitelyTyped/blob/master/node/node-tests.ts

41
basarat

J'ai constaté que j'avais noResolve défini sur true dans mon fichier tsconfig.json. Cela provoquait des erreurs avec les références aux fichiers .d.ts que j'avais inclus en haut de mes fichiers TypeScript.

1
Harvey