Bas*_*adi 8 interface signature typescript
interface test{
foo(boo:string);
}
class coo implements test{
foo(){
}
}
Run Code Online (Sandbox Code Playgroud)
在playGround 中,虽然函数签名不像接口所说的那样但这并不会生成和错误,接口的预期行为是强制签名.
为什么会这样?
谢谢
这很有趣。TypeScript 团队是非常聪明的家伙,他们决定故意这样做。
这个想法是,如果您的函数可以在不传递参数的情况下正确运行,则它可以安全地忽略该参数并满足接口。这意味着您可以替换您的实现而无需更新所有调用代码。
接口确保在您使用接口的所有情况下都传递参数 - 因此您可以对调用者进行类型检查,并且您的具体类不需要任何参数实际上并不重要。
| 归档时间: |
|
| 查看次数: |
834 次 |
| 最近记录: |