如何强制使用类为函数成员实现具有正确类型签名的接口

时间:2019-05-16 10:57:08

标签: typescript

在这里我可能会丢失一些明显的东西,但是如果我做类似的事情

interface ITest {
  f(a: string): number
}

class Test implements ITest {
  f() {
    return 1
  }
}

尽管f的实现没有正确的签名,编译器还是对此感到非常满意。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

简而言之,这是该方法的有效声明,因为它可以安全地忽略其参数,因为它们没有在内部使用。

由于总是从调用者的角度读取函数签名-它会因潜在的JS错误而失败-即尝试使用不存在的变量,以防您尝试这样做。

此行为是设计使然存在的,您可以在why are functions with fewer parameters assignable to functions that take more parameters下的Typescripts常见问题页面中了解有关此行为的全部动机。