簡體   English   中英

ImmutableJS / FlowType:是否可以類型檢查List.toJS()返回的數組

[英]ImmutableJS/FlowType: Is it possible to typeCheck an array returned by a List.toJS()

假設我有這個不變的清單:

type Friend = {
  name: string,
  phone: string
}

const aList: List<Friend> = List([...])

現在,我有了一個帶有以下簽名的函數,該函數應該使用朋友的列表:

const doStuffs = (friends: Array<Friend>): any => {...}

我想用aList轉換成這樣的數組來調用它:

doStuffs(aList.toJS())

但是我有一個流錯誤, aList.toJS()不是Array<Friend>

是否可以類型檢查aList.toJS()的結果,還是必須這樣定義我的函數:

const doStuffs = (friends: Array<any>): any => {...}

如果您確定.toJS()方法返回的是Friend數組,請使用any進行類型轉換以使流程知道。

例如

const arrOfFriends = ((aList.toJS(): any): Array<Friend>)

我知道有時使用any會很糟,但是如果您確定即將發生什么並且不想編寫自己的.toJS()變體, .toJS()

或者,您可以編寫一個將List<Friend>實際轉換為Array<Friend> 也許如果您想真正確定代碼的正確性。 就個人而言,我只是去做上面的any類型轉換,並編寫幾個單元測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM