是的,你完全可以用打字稿做你想做的事。
讓我們假設你將使用類型參數保持器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 = ...'的代碼,所以我認爲保持相同的語法是很好的,但不知何故添加了泛型。 –