type InputValue<Output> = Output | Promise<Output> | (() => Output | Promise<Output>);
async function test<Output>(data: InputValue<Output>): Promise<Output> {
return typeof data === 'function' ? data() : data
}
这给出了误差:
This expression is not callable.
Not all constituents of type '(() => Output | Promise<Output>) | (Output & Function)' are callable.
Type 'Output & Function' has no call signatures.
从技术上讲,可能可以工作,但我想得到类型也很高兴。我认为这是某种方式相关的输出类型本身可以是任何东西(甚至函数)?
1条答案
按热度按时间pjngdqdw1#
我花了一段时间才发现输出不能是函数,但是是的,逻辑无法知道它是函数来获取值还是回调函数来返回函数引用。
感谢@pink和@jcalz的帮助!