Это может быть невозможно из-за существующих языковых ограничений, но я использую новейшие TS (1.8.10), и я столкнулся с проблемой с пиктограммами ui-grid. Свойство isRowSelectable
на IGridOptions
определено как необязательное логическое значение, но в документации говорится, что это функция (и она есть). Я пытаюсь переопределить свойство boolean как функцию, возвращающую логическое значение.Как переопределить свойство в машинописном тексте?
Как правило, я просто расширяю интерфейс ввода и выполняю то, что мне нужно, но это не работает в этом случае. Вот что у меня есть:
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' логическим, то вы не можете« переопределить »его с помощью функции, потому что boolean не является вызываемым. –
ОК, это имеет смысл. если вы хотите ответить этим ответом, я рад отметить его как таковой. Благодарю. – icfantv
Чтобы быть немного педантичным, он ломается не потому, что логическое значение не вызывается, но, как говорит ошибка, потому что функция не может быть привязана к логическому. Функция привязки не вписывается в булево отверстие, а не наоборот. –