我有一个实现接口的简单类:
interface IDevice {
electronic: boolean;
ergonomic: boolean;
powerOn(param1:string): boolean;
}
class ComputerMouse implements IDevice {
electronic = true;
ergonomic = false;
powerOn(param1) {
return true;
}
}
var mouse = new ComputerMouse();
mouse.powerOn(true);
当powerOn()
在接口中键入为字符串时,我可以将布尔值传递给param1
。这不应该导致类型错误吗?
如果我指定param1
是布尔值我正确地得到编译器错误,因为ComputerMouse
powerOn()
的实现需要匹配接口。
class ComputerMouse implements IDevice {
electronic = true;
ergonomic = false;
powerOn(param1:boolean) {
return true;
}
}
这是打算还是我错过了什么?
答案 0 :(得分:1)
似乎这种情况正在发生,因为已实现的属性不是在上下文中键入的: https://github.com/Microsoft/TypeScript/issues/1373
路上有一个修复方法: https://github.com/Microsoft/TypeScript/pull/6118