声明方法匹配TypeScript中的接口

时间:2016-07-22 05:35:35

标签: typescript

假设我有一组带有相同签名的方法。

class Foo {
  method1(foo: string): number { return 42; }
  method2(foo: string): number { return 99; }
}

我可以为方法签名定义一个接口:

interface Method { (foo: string) => number; }

我想避免为每种方法反复重复签名。我知道如果我分配一个变量,我可以说

const fn: Method = foo => 99;

但是在定义方法时我该怎么做?我想得到相当于

class Foo {
  method1: Method(foo) { return 42; }
  method2: Method(foo) { return 99; }
}

但这显然不起作用。

1 个答案:

答案 0 :(得分:3)

  

但是在定义方法时如何做到这一点

就像你使用变量一样

class Foo {
  method1: Method = (foo) => { return 42; }
  method2: Method = (foo) => { return 99; }
}

注意:这确实使它成为成员(而不是方法),但性能影响无关紧要