【发布时间】:2020-05-16 19:05:47
【问题描述】:
我正在使用 TypeScript,并且遇到一个函数返回两种类型的联合的情况。它可以返回字符串或模型,但我不知道如何获取类型并根据返回的类型执行操作。
我该怎么做这样的事情? 在此示例中如何将字符串和 IMyModel 用作值(如错误消息所示)?这个错误让我感到困惑。
export interface IMyModel {
id: number;
name: string;
}
const myFunc = (value: boolean): string | IMyModel => {
if (value) return "a string";
return {
id: 12,
name: "model",
};
};
const a = myFunc(true);
if (a instanceof string) {
console.log("it is a string");
}
if (a instanceof IMyModel) {
console.log("it is a model");
}
我在使用 instanceof 的行中的 Visual Studio 代码中出现以下静态错误:
'string' 仅指一种类型,但在此处用作值。ts(2693)
'IMyModel' 仅指一种类型,但在此处用作值。ts(2693)
我也将界面切换为使用“类型”,但还是一样。
【问题讨论】:
标签: typescript