0
給定一個在兩個屬性上通用的反應組件,load
函數返回類型T
和子項(這是一個參數類型爲T
的函數)...Typescript:通用反應組件上的兒童的類型推斷
class Test<T> extends React.Component<{
load:() => T;
children: (r: T) => JSX.Element;
}> {
render() {
return this.props.children(this.props.load());
}
}
打字稿無法從load
返回值推斷res
類型,默認爲輸入{}
。
<Test load={() => ({ test: 'x' })}>
{res =>
<span>
{res.test}
</span>}
</Test>;
這是一個錯誤,或者是打字稿無法根據返回值來推斷 - 因爲它看起來像支持JSX孩子的打字。
編輯:
爲背景下,用例是創建它接受load
函數返回一個承諾解決一些進一步JSX一個「懶」組分。
好點,也許TS將在未來添加一些JSX特定的打字支持這個東西。 –