我有这样的东西:
interface ISome {
myValue: number | string;
// some more members
}
我有一个函数,它将访问一个
ISome
的myValue
它的some.myValue
是一个数字,并像这样使用它:function (some: ISome): number { // I accept only ISome with myValue type number
return some.myValue + 3;
}
typescript编译器按预期进行编译,因为是数字或字符串。
当然,我可以使用union类型来检查:
function (some: ISome): number { // I could use a guard
if (typeof some.myValue === "number") {
return some.myValue + 3;
}
}
但这不是我想要的,因为我需要经常这样做。
最佳答案
您可以用交集类型覆盖并集类型,并在其中指定myValue
的类型:
function someFunction(some: ISome & {
myValue: number
}): number {
return some.myValue + 3; // No error
}
关于typescript - 在 typescript 中指定联合体类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44592947/