我有一些快速模块扩展。我的意图是能够做到:
request.message('Hello').status(400).json({});
status
和json
函数是快速Response
对象的一部分。这些函数返回它们被调用以允许链接的Response
对象(也称为流利的API)。
我希望添加自己的message
函数来执行相同的操作。我的扩增看起来像这样:
import { SomeType } from '...';
declare global {
namespace Express {
interface Response {
// This works.
getSomeType(): SomeType;
// This does not. Typescript thinks the object returned here has ONLY the getSomeType/message functions on it
message(str: string): Response;
}
}
我尝试过
的变体message(str: string): Express.Response
和
message(str: string): Response & Express.Response
这没什么区别。和以前一样:Typescript认为此处返回的对象仅具有getSomeType / message函数
答案 0 :(得分:2)
答案 1 :(得分:0)
好,找到解决方案。我需要将express导入到类型扩充中,并使扩充返回express.Response
:
import { SomeType } from '...';
import express from 'express';
declare global {
namespace Express {
interface Response {
getSomeType(): SomeType;
message(str: string): express.Response;
}
}