Скажем, у меня есть функция, которая проверяет, является ли параметр строкой, определенной следующим образом:
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, чтобы сделать пример, если оператор правильно сузил тип параметра?