我想调用一个返回类型基于输入布尔参数的函数,所以如果参数为false,它返回一些类型,如果参数为true,它返回一些其他类型。我认为重载非常适合这种情况,但是TypeScript不让我使用它们:
hello(foo: false): ''
hello(foo: true): 'bar' {
if(foo) {
return 'bar'
} else {
return ''
}
}
因为我得到This overload signature is not compatible with its implementation signature.
我应该使用其他的东西,修改这个代码,或者只是切换到多个具有不同名称和类似行为的函数?
1条答案
按热度按时间mbjcgjjk1#
尝试创建重载函数不正确。每个变量都必须与基础实现兼容
在代码中:
true
并返回bar
hello(foo: false): ''
与它不兼容