我有以下功能:
chmod ugo+x bin/rdiag
我希望返回值在function doThing(shouldReturnObject: boolean): string | object {
return shouldReturnObject ? { hello: 'world' } : 'hello world';
}
等于true时为对象,而在字符为false时为字符串。
答案 0 :(得分:7)
免责声明:在某些情况下,这不被视为最佳做法。如果你想这样做,你应该重新考虑你的架构。
-
解决方案是重载函数。为每个参数值重载函数并更新返回类型,如下所示:
shouldReturnObject
如果参数是对象,也可以实现。例如:
doThing(shouldReturnObject: true): object
doThing(shouldReturnObject: false): string
doThing(shouldReturnObject: boolean): string | object {
return shouldReturnObject ? { hello: 'world' } : 'hello world';
}