根据TypeScript中的参数值更改返回类型

时间:2018-06-18 17:38:01

标签: typescript

我有以下功能:

chmod ugo+x bin/rdiag

我希望返回值在function doThing(shouldReturnObject: boolean): string | object { return shouldReturnObject ? { hello: 'world' } : 'hello world'; } 等于true时为对象,而在字符为false时为字符串。

1 个答案:

答案 0 :(得分:7)

免责声明:在某些情况下,这不被视为最佳做法。如果你想这样做,你应该重新考虑你的架构。

-

解决方案是重载函数。为每个参数值重载函数并更新返回类型,如下所示:

shouldReturnObject

如果参数是对象,也可以实现。例如:

doThing(shouldReturnObject: true):  object
doThing(shouldReturnObject: false): string
doThing(shouldReturnObject: boolean): string | object {
  return shouldReturnObject ? { hello: 'world' } : 'hello world';
}