如何为中间件编写TypeScript定义,将属性添加到响应中?
我想用TypeScript的快递来expression快感。 它缺乏types,所以我想写我自己的。 只是让它编译是微不足道的。
这个中间件装饰物业boom
的res
物体(来自繁荣模块 ):
var express = require('express'); var boom = require('express-boom'); var app = express(); app.use(boom()); app.use(function (req, res) { res.boom.notFound(); // Responsds with a 404 status code });
但与打字稿我需要把它,因为无论http.ServerResponse
和Express.Response
有兴旺的属性,当然:
return (<any>res).boom.badRequest('bla bla bla');
最干净的方法是干什么? 哪些是其他types的中间件,正在做类似的事情?
还有其他一些Express中间件可以用作示例,例如方法覆盖 ,及其types定义 。
作为一个更具体的例子,如果你想把这个.boom属性添加到响应对象中,你只需要创build一个types定义(express-boom.d.ts),其中包含:
declare namespace Express { interface Boom { // Add boom's properties in here } export interface Response { boom: Boom } }