没有使用implements去实现接口,代码中所有接口和类都没有这样去写,为什么?

来源:8-3 -3 拦截器的设计与实现 - 链式调用实现

weixin_慕丝7060995

2020-08-08

export interface AxiosInterceptorManager {
use(resolved: ResolvedFn, rejected?: RejectedFn): number

eject(id: number): void
}

export default class InterceptorManager {
private interceptors: Array<Interceptor | null>

constructor() {
this.interceptors = []
}

use(resolved: ResolvedFn, rejected?: RejectedFn): number {
this.interceptors.push({
resolved,
rejected
})
return this.interceptors.length - 1
}

forEach(fn: (interceptor: Interceptor) => void): void {
this.interceptors.forEach(interceptor => {
if (interceptor !== null) {
fn(interceptor)
}
})
}

eject(id: number): void {
if (this.interceptors[id]) {
this.interceptors[id] = null
}
}
}

写回答

1回答

ustbhuangyi

2020-08-09

类的实现并不一定需要使用 implements 关键字去实现某个接口,只需要保证它最终的实现和接口一致即可。

0
2
ustbhuangyi
回复
Charles_So_网页开发
implements 通常就是用于类实现某个接口,当然你也可以为每个类的实现都使用 implements 关键字,它的意义正如你说所的,约束类的实现和接口定义一致。
2020-09-04
共2条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程