【发布时间】:2021-07-03 06:57:10
【问题描述】:
function isObject(v: any): v is Object{
return v instanceof Object && !Array.isArray(v);
}
let v: string | Object;
if (isObject(v))
v.hasOwnProperty("x");
else
if (typeof v === 'string')
v.trim(); //Error: Property 'trim' does not exist on type 'never'
我对最后一行中的错误感到困惑,显然,v 被缩小为输入“从不”,但我看不出它的逻辑。 (打字稿版本 4.2.3)
【问题讨论】:
-
在类型位置使用
object(不是Object)typescriptlang.org/play?#code/… -
有很多方法可以改进这段代码。但我想他得到的这个错误是因为他的 if 和 else 是错误的。在这种情况下,他不需要其他东西。
-
为什么需要在单个变量中包含字符串和对象?
标签: typescript typeguards