How to write TypeScript definition for a middleware that adds property to the response?

Multi tool use
Multi tool use


I'd like to use express-boom for express with TypeScript. It lacks of typings so I'd like to write my own. Just make it compile is trivial.



This middleware decorates the res object with a property boom (derived from the boom module):



But with typescript I need to cast it because neither http.ServerResponse and Express.Response have the boom property, of course:



Which is the cleanest way to do it? Which are other typed middleware that are doing a similar thing?



There's quite a few other Express middlewares you can use as examples, e.g. Method-Override, and its type definitions.



As a more concrete example, if you want to add this .boom property to the response object, you should just need to create a type definition (express-boom.d.ts) containing:



Create a type definition file express-boom.d.ts containing:



This declares that the interface Express.Response has an additional property named boom. The declared type of the property is the same as that of the namespace Boom, meaning that the property is an object that has all the same methods as the Boom namespace.



Here is a sample usage. Hope this helps someone.



Include express-boom.d.ts along with your applications source files.



Refer the sample-usage.ts in the below gist for example usage:



Gist: Type definitions for express-boom:






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

qeqUA3h EeDky edUBKQAgnuF5Rs
2GaeR9zzH XVb3fTv7RSH,TB0GFMdAm5N7Wtb,KvAn lgaSYRKNXECREeOdtClj7M

Popular posts from this blog

The Dalles, Oregon

영화 미래의 미라이 다시보기 (2018) 다운로드 링크 무료보기

Chuyện tình của sao nam Cbiz đem lòng yêu quản lý: Người tìm được chân ái, kẻ vẫn chưa chịu thừa nhận