【发布时间】:2018-10-10 23:42:20
【问题描述】:
我想从函数中使用type refinements。 如何在流中创建type guard 函数(TypeScript)?
我 TypeScript 示例:
function isString(arg: Showable): arg is string {
return typeof arg === 'string';
}
II流
/* @flow */
type Showable = number | string;
// ok
function barOk (arg: Showable) {
return typeof arg === 'string' ? arg.length : (arg + 1);
}
// type guard function
function isString(arg: Showable) {
return typeof arg === 'string';
}
// Error
function barError (arg: Showable) {
return isString(arg) ? arg.length : (arg + 1);
// ^ Cannot get `arg.length` because property `length` is missing in `Number`
}
【问题讨论】:
标签: flowtype