【发布时间】:2018-01-13 13:39:27
【问题描述】:
给定一个对两个属性通用的反应组件,一个load 函数返回类型T 和子项(这是一个采用T 类型参数的单个函数)...
class Test<T> extends React.Component<{
load: () => T;
children: (r: T) => JSX.Element;
}> {
render() {
return this.props.children(this.props.load());
}
}
typescript 无法从load 的返回值推断res 的类型,它默认为类型{}。
<Test load={() => ({ test: 'x' })}>
{res =>
<span>
{res.test}
</span>}
</Test>;
这是一个错误,还是打字稿无法根据返回值进行推断——因为看起来 JSX 子项的类型是受支持的。
编辑:
对于背景,用例正在创建一个“惰性”组件,它接受 load 函数,该函数返回一个解析为进一步 JSX 的承诺。
【问题讨论】:
标签: reactjs typescript