假设我有一个函数来检查参数是否是这样定义的字符串:
function isString(value: any): boolean {
return typeof value === 'string' || value instanceof String;
}
现在,当我将此功能与 typescript 2.0 控制流分析一起使用时,我希望以下内容可以工作:
function foo(param: string|Foo) {
if(isString(param)) {
// param is not narrowed to string here
} else {
// param is not narrowed to Foo here
}
}
有没有一种不同的方法可以定义 isString 来使示例 if 语句正确地缩小参数的类型?