我试图重新创建express routing example在打字稿在打字稿
我有...
/// <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);
第一个错误的打字稿编译器会引发我是'/example/c'
说Argument of type 'string' is not assignable to parameter of type 'RegExp'
......奇怪,因为在express.d.ts
功能被定义为允许一个字符串,或一个正则表达式......可是,好吧,我将其更改为new RegExp('/example/c')
然后它会向我抛出错误Argument of type 'RequestHandler[]' is not assignable to parameter of type 'RequestHandler'.
。也奇怪,因为express.d.ts
文件具有定义为允许数组的方法。
很新,在这里打字稿,这些都是一些神秘的错误信息......
值得注意的是,'express.d.ts'来自DefinitelyTyped -https://github.com/borisyankov/DefinitelyTyped/blob/master/express/express.d.ts – TranquilMarmot