我使用typeof
来推断函数的返回类型,但是由于我不能调用实际的函数,所以我使用了一个技巧,即使用三元运算符来推断类型,然而这给我留下了一个包含undefined
的联合类型:
function foo() {
return { bar: 1 };
}
const fooInstance = true ? undefined : foo(); // foo() is never actually called
type FooOrUndefined = typeof fooInstance; // {bar: number} | undefined
type Foo = ???; // Should be { bar: number }
有没有办法把undefined
从FooOrUndefined
中去掉呢?
4条答案
按热度按时间ddrv8njm1#
您将需要使用
NonNullable
:样品
zpqajqem2#
如果你只想删除
undefined
而保留null
,你可以使用一个小工具:d6kp6zgx3#
ford04 pointed me to
NonNullable
,但我也发现ReturnType
是实现我所尝试的目标的更简洁的方法:lqfhib0f4#
使用类型脚本的
Exclude
类型实用程序类型: