Node.js 使用TypeScript指定函数参数的类型

Node.js 使用TypeScript指定函数参数的类型,node.js,typescript,Node.js,Typescript,我正在尝试在节点应用程序中指定函数参数类型。这就是我想到的: import express = require("express"); module.exports = (app) => { app.get('/', (req: express.Request, res: express.Response) => { // <- this fails to compile // do work }); } TS定义来自定义类型。“快递”的定义

我正在尝试在节点应用程序中指定函数参数类型。这就是我想到的:

import express = require("express");

module.exports = (app) => {
    app.get('/', (req: express.Request, res: express.Response) => { // <- this fails to compile
        // do work
    });
}
TS定义来自定义类型。“快递”的定义如下:

declare module "express" {
在一个.d.ts文件中

显然我做错了。。有什么提示吗

编辑: 要进一步阐述巴萨拉特的答案: 在csproj文件中找到TypeScriptModuleKind条目,并将其设置为COMMONJS

ts最终看起来像这样:

import express = require("express");

module.exports = (app: express.Application) => {
    app.get("/", (req, res) => {
        res.send({ name: "woohooo" });
    });
}

生成的javascript如下所示:

define(["require", "exports"], function(require, exports) {
    module.exports = function (app) {
      //......
    };
});
因为您是使用
--module amd
编译的。对于节点,您应该使用
--module commonjs
参见:

PS:您需要参考TypeScript的express类型定义以了解express用法:定义:

define(["require", "exports"], function(require, exports) {
    module.exports = function (app) {
      //......
    };
});