1
我刚开始将所有代码转换为与strictNullChecks一起工作。我想有以下操作的功能:创建一个从union类型中删除null的函数签名
function defaultValue<TUnionNull>(value: TUnionNull, default: TWithoutNull): TWithoutNUll{
return value == null ? default : value
}
function requiresNotNullString(): void
var name: string | null;
var checkedName: string = defaultValue(name, "Fred");
换句话说,如果该函数的输入为string | null
我想返回类型为string
这可能吗?
感谢。这与我刚刚提出的相同。它可以工作,但要求你将一个类型传递给函数:'defaultValue(value,default)'如果不需要'',将会很好 –
Roaders
不,编译器推断'T'关于你作为“价值”传递的信息。我检查了你的代码,它编译得很好 –
如果'value'是'string | null“,那么返回类型将是'string |所以'var返回:string = defaultValue('将失败,因为可能会返回null。 – Roaders