如何在TypeScript中获取类方法的返回类型

flq*_*flq 4 typescript typescript3.0

在较新的TypeScript版本中(我认为2.8以后?),我可以轻松获得函数的返回类型:

function f() { return "hi"; }
type MyType = ReturnType<typeof f>; //MyType is string
Run Code Online (Sandbox Code Playgroud)

但我无法想出从类方法中获取相同的信息......

class MyClass {
  foo() { return "hi"; }
}
Run Code Online (Sandbox Code Playgroud)

我如何获得返回类型(new MyClass()).foo()

art*_*tem 11

要获取属性或方法类型,可以使用索引访问类型运算符:

type FooReturnType = ReturnType<MyClass['foo']>;
Run Code Online (Sandbox Code Playgroud)

  • 我已经找了好几个小时了!谢谢你! (3认同)