gpt4 book ai didi

javascript - Typescript:如果派生类中没有传递任何值,如何设置可选参数?

转载 作者:行者123 更新时间:2023-12-03 00:26:08 25 4
gpt4 key购买 nike

我有一个基类:

export class ClientBase {

constructor(private uri: string, private httpClient: HttpClient) { }

// My Various Methods
}

我有几个派生自 ClientBase 的类

例如:

@Injectable()
export class GizmoService extends ClientBase {

constructor(private http: HttpClient)
{
super(environment.gizmoUri, http);
}

};

因此,在 GizmoService 中,我想在一种特定情况下专门传递 Uri..

所以理想情况下我想做这样的事情:

@Injectable()
export class GizmoService extends ClientBase {

constructor(private http: HttpClient, uri?: string)
{
if (!uri) uri = environment.gizmoUri;
super(uri, http);
}

};

但是我收到错误消息,表明 super 必须是构造函数中的第一个调用。

如何解决这个问题,而无需对现有代码库进行大量更改? (即不更改每次调用以传递 2 个参数)

最佳答案

您始终可以为 uri 参数指定默认值。

@Injectable()
export class GizmoService extends ClientBase {

constructor(private http: HttpClient, uri: string = environment.gizmoUri) {
super(uri, http);
}

}

关于javascript - Typescript:如果派生类中没有传递任何值,如何设置可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54080835/

25 4 0
文章推荐: javascript - 访问 Google Firestore 集合的最后 N 个文档
文章推荐: javascript - 如何迭代多个参数数组
文章推荐: javascript - React、Webpack 和 Tampermonkey : `cannot set property event of# which only has a getter`