TypeScript:将可调用类型声明为类方法类型

时间:2019-05-30 20:38:50

标签: typescript

我有一个可调用的类型别名或接口,例如

type MyCallable = (n: number) => string

然后我有一个类,它的方法之一就是该可调用类型:

class MyClass {
  myMethod(n: number): string {
    return ''
  }
}

我想使用MyCallable类型声明其类型:

class MyClass {
  myMethod(n): MyCallable {
    return ''
  }
}

显然,这种方法行不通,因为myMethod不会返回一个MyCallable,但是本身是一个MyCallable

在TS中甚至有可能吗?

1 个答案:

答案 0 :(得分:3)

一种简单的方法是声明和实现接口:

type MyCallable = (n: number) => string

type WithCallable = { 
    myMethod: MyCallable
}
class MyClass implements WithCallable {
  myMethod(n) {
    return ''
  }
}