Javascript 在express in typescript中使用回调函数数组

Javascript 在express in typescript中使用回调函数数组,javascript,node.js,express,typescript,Javascript,Node.js,Express,Typescript,我正在尝试在typescript中重新创建 我有 /// <reference path='Scripts/typings/express/express.d.ts' /> import express = require('express'); var app = express(); var cb0: express.RequestHandler = function (req, res, next) { console.log('CB0'); next(); }

我正在尝试在typescript中重新创建

我有

/// <reference path='Scripts/typings/express/express.d.ts' />
import express = require('express');
var app = express();

var cb0: express.RequestHandler = function (req, res, next) {
    console.log('CB0');
   next();
}

var cb1: express.RequestHandler = function (req, res, next) {
    console.log('CB1');
    next();
}

var cb2: express.RequestHandler = function (req, res) {
    res.send('Hello from C!');
}

var arr: express.RequestHandler[] = [cb0, cb1, cb2];

app.get('/example/c', arr);
//
导入快件=需要(“快件”);
var-app=express();
var cb0:express.RequestHandler=函数(req、res、next){
console.log('CB0');
next();
}
var cb1:express.RequestHandler=函数(req、res、next){
console.log('CB1');
next();
}
var cb2:express.RequestHandler=函数(req,res){
res.send('Hello from C!');
}
var arr:express.RequestHandler[]=[cb0、cb1、cb2];
app.get('/example/c',arr);
typescript编译器向我抛出的第一个错误是,
'/example/c'
说'string'类型的
参数不能分配给'RegExp'类型的参数。
。。。奇怪,因为在
express.d.ts
中,函数定义为允许字符串或正则表达式。。。但是,好的,我将其更改为
newregexp('/example/c')

然后它抛出一个错误,
类型为'RequestHandler[]的参数不能分配给'RequestHandler'类型的参数。
指向我。同样奇怪的是,因为
express.d.ts
文件的方法定义为允许数组


这里的typescript非常新,下面是一些神秘的错误消息…

将代码段的最后一行更改为这一行,您应该可以:

app.get('/example/c', cb0, cb1, cb2);

无法将RequestHandler数组传递给第二个参数。。。。这是Typescript中一种特殊类型的参数,称为“rest”参数,类似于C#中的“params”。

可能值得注意的是,
express.d.ts
来自DefinitelyTyped-谢谢!这很有道理。