在打字稿中,反應&redx,state
參數的mapStateToProps
函數連接方法聲明爲any
。如何使用接口代替函數中的任何類型參數
interface MapStateToProps<TStateProps, TOwnProps> {
(state: any, ownProps: TOwnProps): TStateProps;
}
我想用我的代碼中定義的類型來代替狀態參數的任何類型。我怎樣才能做到這一點?
const mapStateToProps = (state: MyStateInterface) => {};
但是這不起作用,因爲它不符合簽名。
什麼工作只有當我把它像這樣:
const mapStateToProps = (state: any) => {};
但後來我失去我的IDE自動完成,並鍵入我的函數內部檢查。
事實上,它是一個更多的打字稿問題,而不是一個打字問題。
當函數類型的參數爲any
參數時,如何在使用時指定參數的實際類型?
不應它是'常量mapStateToProps:MyStateInterface =(狀態)=>'?你正試圖將函數值分配給不正確的狀態參數。你可以定義一個狀態接口,它包含你的reducer的返回值,如果你想把這個類型賦值給狀態參數 –
,實際上我需要輸入函數的''''參數。 'MyStateInterface'是一個接口,描述了我在應用程序中的存儲(它可以名稱爲'StoreInterface',我在這裏將它命名爲與redux接口聲明相匹配) – Bouni
不確定是什麼意思?如果您有'combineReducers'的索引,則可以爲該組合縮減器定義一個類型/接口,這就是狀態值。讓我寫一個答案來幫助解釋 –