function isStr(p): p is string{
return typeof p === 'string';
}
function isStr2(p): boolean{
return typeof p === 'string';
}
// 上述两个function 编译后的结果一样
// 区别如下:
function str2Uppercase(param) {
console.log(param); // param: any
if (isStr(param)) { // param: any
console.log(param); // param: string
}
if (isStr2(param)) { // param: any
console.log(param);// param: any
}
}
用人话翻译一下,我觉得就是:用了is,ts就可以根据is后面的类型做类型判断。比如is Element, 就可以对参数用element的属性和方法,querySelector之类的。
( The end ! 🍒)