Flow报告说,默认参数值{}
与类型{}
的泛型不兼容。
这是一个最小的示例:
function copy<T: {}>(o: T = {}): T {
// ^ object literal [1] is incompatible with `T` [2].
return {
...o
};
}
docs说出类型{}
:
有时候,编写接受任意对象的类型很有用, 对于那些你应该写{}。
那么它们在什么意义上是不兼容的?
答案 0 :(得分:0)
T: {}
表示“ T
是{}
的任何子类型”,换句话说,T
是对象类型。如果它具有任何必需的属性,则{}
不是类型T
的值。