我試圖重新創建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