【问题标题】:Why doesn't this type check, but a variation of it does?为什么这种类型不检查,但它的变体呢?
【发布时间】:2015-08-11 20:43:46
【问题描述】:

我不确定这是否是一个错误,所以我想我会在这里问。

我的代码无法输入检查:

/* @flow */
declare type A = {
    code: ?number;
}

var a: A = {}

但是,如果我创建一个与类型 A 具有相同签名的类,并对其进行实例化,那么它会进行类型检查:

/* @flow */
declare type A = {
    code: ?number;
}

class _A {
    code: ?number;
}

var a: A = new _A();

我在第一个变体上遇到的类型检查错误是这样的:

test.js:2:19,4:2: property code
Property not found in
test.js:6:13,14: object literal

我觉得这是一个错误,但我可能是错的。

【问题讨论】:

    标签: flowtype


    【解决方案1】:

    我通过重新阅读文档发现了这一点。可选属性的语法不是:

    {code:?number}
    

    而是:

    {code?:number}
    

    哎呀。

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多