我正在使用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代码中收到以下静态错误:
'字符串'仅指类型,但在此处用作值。ts(2693)
'IMyModel'仅引用类型,但在此处用作值。ts(2693)
我也将界面切换为使用“类型”,但这是相同的。
我正在使用TypeScript,并且函数返回两种类型的并集。它可以返回一个字符串或一个模型,但是我不知道如何获取类型并基于...
要检查某些东西是否是字符串,您可以像在JavaScript中一样进行操作
object instanceof constructor
表达式中的右手参数应为构造函数/函数。
Typescript是javascript的超集,最终会编译为javascript。话虽这么说,重要的是要考虑您正在编写的代码像javascript一样。 More: