我有一个具有属性matchMaker
的接口,它看起来像这样:
export interface ServerOptions {
matchMaker: MatchMakerType<MatchMaker>
}
然后,我有一个类,它设置了使用该接口的默认值,如下所示:
export class Server {
public readonly settings: ServerOptions = {
matchMaker: undefined
}
public constructor(options: ServerOptions) {
this.settings = Object.assign(this.settings, options)
}
}
创建类
Server
的新实例时,我希望在将选项传递给构造函数时要求为typeof MatchMaker
设置matchMaker
。我不想允许undefined | null
或其他任何东西传递给构造函数,但是我需要有一些默认值,当我使用undefined
时,它将被覆盖,但会出现错误:类型“未定义”不能分配给类型“ MatchMakerType”。
如何设置将被覆盖的默认设置?
最佳答案
您可以使用Partial
,以允许在Server.settings
中未定义的属性:
public readonly settings: Partial<ServerOptions> = { }
关于javascript - Typescript接口(interface)默认值,它将在构造函数中被覆盖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49944373/