事件中的流类型细化

时间:2019-06-30 15:46:30

标签: javascript flowtype refinement-type

好吧,我有一个事件发生在文本输入中“ onchange”。

我想在事件处理过程中获得的明显字段之一是输入的新值。一个简单的示例如下所示:

onChange = (event: SyntheticInputEvent<>) => {
    const target = event.currentTarget;
    const {something} = this.props;

    if (target && target.hasOwnProperty('value')) {
        something[fieldname] = target.value;
    }
};

但是,这令人窒息:流程抱怨:

  

错误:(34,47)无法获得target.value,因为value [1]中缺少属性EventTarget

现在如何正确优化此类型?显然流程无法理解hasOwnProperty。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

SyntheticInputEvent generic需要类型实参,您似乎错过了它。

这样,应该让流程变得快乐:

const onChange = (event: SyntheticInputEvent<HTMLInputElement>) => {
    const target = event.currentTarget;
    console.log(target.value);
};