我无法弄清楚为什么我会收到错误:
export interface IGrid {
(gridCell: GridCell): boolean
}
在我班上我有
foo(gridCell: GridCell): boolean {
return true;
}
错误:
Class' X'错误地实现了界面' IGrid'。输入' X' 不提供签名匹配'(gridCell:GridCell):boolean'
更新
我已经在界面的gridFormat签名中添加了一个参数。
export interface IGrid {
gridFormat(gridCell: GridCell, x: number): boolean
}
类别:
gridFormat(gridCell: GridCell): boolean {
return true;
}
现在问题是没有错误,该类没有使用x: number
参数实现该功能。如何让界面正确地要求该功能。
答案 0 :(得分:2)
您的IGrid
界面是function interface,表示界面描述了一个功能。您可以像这样实现它:
let yourFunc: IGrid = (gridCell: GridCell): boolean => {
return true;
};
如果你想在一个类中实现它,你的接口应该声明一个带有函数成员的class type interface:
export interface IGrid {
foo(gridCell: GridCell): boolean
}
class Grid implements IGrid {
foo(gridCell: GridCell): boolean {
return true;
}
}
Re:为什么在实现缺少接口中定义的参数时没有错误:
这是设计的。请参阅this issue和TypeScript FAQ