如何让Typescript知道函数的返回类型,该函数取决于传入的参数

时间:2019-05-18 05:39:19

标签: typescript

我正在尝试用打字稿做类似的事情

class Test {
  someMethod(){}
}

const foo = {
  'someStringThatMeansTest': new Test,
}

function createClass(classReferenceName) {
  return foo[classReferenceName];
}

const test = createClass('someStringThatMeansTest');

我想知道是否有可能让打字稿找出createClass的返回类型

1 个答案:

答案 0 :(得分:1)

是的,您可以将参数类型限制为foo的键,然后typescript将能够正确推断返回类型:

function createClass<T extends keyof typeof foo>(classReferenceName: T) {
  return foo[classReferenceName];
}

Playground