【发布时间】:2019-08-23 23:34:21
【问题描述】:
编辑对不起,我的问题有点不清楚。我想强制始终需要 getList 参数。所以我没有它的默认值。例如,我希望用户始终提供一个 getlist
我正在尝试创建一个带有一些可选参数和一些必需参数的构造函数
export class PageConfig {
constructor({
isSliding = false,
}: {
isSliding?: boolean
getList: (pagingInfo: PagingInfo) => Observable<any>
} = { }) { }
}
执行此操作时出现错误
类型“{}”中缺少getList,但类型中需要...
我希望能够在这样的课程中使用它:
class UsersPage {
config = new pageConfig({ this.getList })
getList(pagingInfo: PagingInfo) {
// do work...
}
}
注意:我已经简化了这个例子的类,但是我有更多的属性,我想利用解构,所以我不必配置我的类的实例化其他比声明中的
如何强制在解构期间必须传递 getList?
【问题讨论】:
-
我想你会想为你的构造函数定义一个参数接口。
-
config = new pageConfig({ ...this.getList })
-
????我很困惑。你想在哪里使用解构?在
PageConfig构造函数实现签名?或者在PageConfig构造函数的调用 中?如果是前者,它将像constructor({ isSliding = false, getList }: { isSliding?: boolean; getList: GetListFunc;})一样是多余的。如果是后者,new PageConfig({this.getList})不是有效的语法;你可能需要做new PageConfig(this)或new PageConfig({getList: this.getList})。但我真的不太了解预期的用例,无法将这些变成答案。 -
@jcalz 你不能在调用中进行解构。
-
为什么你将
getList声明为你的参数的一个属性,然后在解构中没有使用它?
标签: javascript typescript object ecmascript-6 destructuring