类型为{}的通用流与{}的默认值不兼容

时间:2018-11-14 10:45:30

标签: flowtype

Flow报告说,默认参数值{}与类型{}的泛型不兼容。
这是一个最小的示例:

function copy<T: {}>(o: T = {}): T {
  //                         ^ object literal [1] is incompatible with `T` [2].
  return {
    ...o
  };
}

docs说出类型{}

  

有时候,编写接受任意对象的类型很有用,   对于那些你应该写{}。

那么它们在什么意义上是不兼容的?

1 个答案:

答案 0 :(得分:0)

T: {}表示“ T{}的任何子类型”,换句话说,T是对象类型。如果它具有任何必需的属性,则{}不是类型T的值。