Type Guard TypeScript是如何工作的?

时间:2019-12-12 14:16:08

标签: typescript

我找到一个示例来解释Typescript中的类型保护,但是 我不明白,为什么此代码有效:

function add(
   arg1:string|number,
   arg2:string|number
  ):any{
       if (typeof arg1==="string"){
           console.log("string")
           return arg1+arg2;  
        }
        if (typeof arg1==="number" && typeof arg2==="number"){
            console.log("number")
            return arg1+arg2;  
        }
        return arg1.toString()+arg2.toString()
}
console.log (add(1,2));

为何不起作用,如果您更改第二个字符,就像这样:

if (typeof arg1==="number" ){...

没有条件且不起作用 即使此功能有效:

function add2():any{
    return (2+"3")
}
 console.log(add2())

那么为什么我必须把条件放在和中?否则给出错误?

0 个答案:

没有答案