【发布时间】:2020-07-29 22:46:44
【问题描述】:
假设你有一个接收泛型类型 T 的 Foo 接口
interface Foo<T> {
...
bar: T;
}
现在你希望 T 类型是可选的,所以你设置一个默认值
interface Foo<T = undefined> {
...
bar: T;
}
但仍然需要“bar”。
如何在设置类型 T 时获取 'bar' 为必需(不是未定义),并在未设置类型 T 时将其删除(或将其设置为不需要)?
我已经尝试过类似下面几行的内容,但仍然需要“bar”。我可以在 'bar' 属性中添加一个问号,但设置 T 时将不需要 'bar'。
interface Foo<T = undefined> {
...
bar: T extends undefined ? never : T;
}
知道这是否可能吗?
【问题讨论】:
标签: typescript