【发布时间】:2016-10-08 23:15:27
【问题描述】:
由于当前的语言限制,这可能是不可能的,但我使用的是最新的 TS (1.8.10),并且遇到了 ui-grid 类型的问题。 IGridOptions 上的 isRowSelectable 属性被定义为一个可选的布尔值,但文档说它是一个函数(确实如此)。我正在尝试将布尔属性覆盖为返回布尔值的函数。
通常,我只是扩展打字界面并做我需要的事情,但在这种情况下这不起作用。这是我所拥有的:
interface ISelectionGridOptions extends IGridOptions {
isRowSelectable: (row: IGridRowOf<Profile>) => boolean;
}
IGridOptions 中的相关字段在哪里:
export interface IGridOptions {
...
isRowSelectable?: boolean
...
}
我得到的错误是:
(41,11): error TS2430: Interface 'ISelectionGridOptions' incorrectly extends interface 'IGridOptionsOf<any>'.
Types of property 'isRowSelectable' are incompatible.
Type '(row: IGridRowOf<Profile>) => boolean' is not assignable to type 'boolean'.
没有修复核心类型定义,有没有办法在我的代码中解决这个问题?
【问题讨论】:
-
如果接口将
isRowSelectable声明为布尔值,那么您不能用函数“覆盖”它,因为布尔值不可调用。 -
好的,这是有道理的。如果您想将此作为答案进行回复,我很乐意将其标记为这样。谢谢。
-
有点迂腐,它不是因为布尔值不可调用,而是因为不能将函数分配给布尔值。函数 peg 无法放入布尔孔中,反之亦然。
标签: typescript