是的,你完全可以用打字稿做你想做的事。
让我们假设你将使用类型参数保持器TRow
(可以是任何类型的行)将通用类型包装在通用接口DataTableProps
中。
interface DataTableProps<TRow> {
items: Array<TRow>
}
现在,您想在您的反应组件类中使用该属性类型。因此,假设您的组件是无状态的,我们将使用React.SFC
类型来指代无状态响应组件。
function getDataTableComp<TRow>() : React.SFC<DataTableProps<TRow>>{
return props => <div>
<p>{props.items.toString()}</p>
</div>
}
这是一个返回特定类型的无状态反应分量的函数。然后,我们可以使用该功能的,
const MyStringDataTable = getDataTableComp<string>();
现在,我们有一个特定的数据表类型,串行的,即数据表。然后,我们可以用一个实例作为
ReactDOM.render(<MyStringDataTable items={['a', 'b']} />, document.getElementById('page-root'))
您将获得a,b
呈现在你的页面。
我完全把你的问题弄错了,我不明白为什么你想要一个函数在常量上。也许你可以做公共静态yourFunction(somearg:T){} ??? –
是的,就像我在问题中所展示的一样,我可以使用函数DataTable ...定义它。然而,因为所有的代码都使用类似'const DataTable = ...'的代码,所以我认为保持相同的语法是很好的,但不知何故添加了泛型。 –