我的节点服务器创建为:
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
而不是正确的类型信息?
答案 0 :(得分:4)
尝试使用import
代替require
import * as http from "http";
function createHttpServer(app) {
// var http = require("http");
var server = http.createServer(app);
return server;
}