我有以下类和接口:
export class EnforceAjax implements Middleware {
public handle(client: Client) {
return client.ajax === true
}
}
export interface Middleware {
handle?(client: Client, ...args: any[]): boolean | Response
}
当我尝试执行以下命令时:
Router.group('/api', { middleware: [EnforceAjax] }, async () => require('./api'))
export interface RouterOptions {
middleware?: (Middleware | string)[]
}
public static group(routePrefix: string, options: RouterOptions, callback: Function): void
我收到以下错误:
类型'typeof EnforceAjax'不可分配给'字符串|中间件”。 'typeof EnforceAjax'类型的值与'Middleware'类型没有共同的属性。你是想打电话吗?
虽然我添加了new
关键字,但错误消失了,但是我不想将类的实例作为值传递给数组。
答案 0 :(得分:1)
然后输入middleware
作为中间件构造函数:
export interface RouterOptions {
middleware?: ({ new(): Middleware; } | string)[]
}
不确定为什么还是要上课。