【发布时间】:2018-11-30 08:43:57
【问题描述】:
我有一个类似这样的界面:
interface ISomething<TMulti extends object> {
value: number | string;
text: string | TMulti;
}
文本部分可以是简单的字符串,也可以是实现某些特定接口的对象映射。在大多数情况下,它只是一个简单的不可为空的字符串,所以我想将TMulti 泛型类型默认设置为使用此接口的东东。我的选择是
{}nullnever
最好的选择似乎是never,但我从未见过它被用作通用类型默认值,我不确定string | never 的类型实际上意味着什么?是否与string 相同?其他两个选项,请允许我将 text 的值设置为某个不需要的值。
问题是:never 类型可以用作默认的泛型类型吗?这种情况是什么意思?
补充说明:我在严格模式下使用 Typescript,所以
string根据编译器要求不能为空,这也是我想要的。
【问题讨论】:
标签: typescript generics