Node的TypeScript类型信息

时间:2019-09-10 16:11:07

标签: node.js typescript

我的节点服务器创建为:

function createHttpServer(app) {
    var http = require('http');
    var server = http.createServer(app);
    return server;
}

我正在将我们的.js代码迁移到.ts代码中,并且我注意到当扩展名为.js时,我会得到createServer的类型信息。但是,当我切换到.ts时,它变成了any,因此我在正确键入内容时遇到了麻烦。

这是我的tsconfig.json文件的样子:

{
    "compileOnSave": false,
    "compilerOptions": {
        "allowJs": true,
        "outDir": "./out-tsc",
        "sourceMap": true,
        "declaration": false,
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es6",
        "types": [
            "node"
        ],
        "lib": ["es6"],
        "module": "commonjs",
        "pretty": true,
        "allowSyntheticDefaultImports": true
    }
}

为什么,尽管使用了node类型,但我还是得到了any而不是正确的类型信息?

1 个答案:

答案 0 :(得分:4)

尝试使用import代替require

import * as http from "http";

function createHttpServer(app) {
  // var http = require("http");
  var server = http.createServer(app);
  return server;
}