第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

流程錯(cuò)誤:無法調(diào)用 `Object.entries(...).reduce` 因?yàn)閌...` [1]

流程錯(cuò)誤:無法調(diào)用 `Object.entries(...).reduce` 因?yàn)閌...` [1]

UYOU 2022-06-16 15:45:13
我對(duì) Flow 很陌生,我可能在這里遺漏了一些非?;镜臇|西。我有一個(gè)特定格式的對(duì)象,我正在將其轉(zhuǎn)換為另一種格式。這可以通過多種方式完成,但我選擇使用 Object.entries 來獲取包含鍵/值對(duì)的數(shù)組,然后使用 reducer 函數(shù)處理?xiàng)l目數(shù)組,如下所示: const langContent = { // The input object  someKey: {    en: 'Some en value',    nb: 'Some nb value'  },  someOtherKey: {    en: 'some other en Value',    nb: 'some other nb Value'  }}const useLanguages = ['nb', 'en']const result = Object.entries( langContent ).reduce( ( obj, [key, val] ) => {  useLanguages.forEach( ( langKey ) => {    if ( ! obj[langKey] ) obj[langKey] = { translation:{} }    obj[langKey].translation[key] = val[langKey]  } )  return obj}, {} )// Expected output object in the form of { en: translation: {someKey: 'some en value'}}純 js 按預(yù)期工作:jsfiddle但是,當(dāng)嘗試使用 Flow 進(jìn)行類型檢查時(shí)(我花了一些時(shí)間試圖弄清楚如何做到這一點(diǎn)),我不斷在標(biāo)題中收到錯(cuò)誤。以下是我的一些嘗試:FlowTry1FlowTry2FlowTry3(對(duì)我來說,編寫流類型比編寫實(shí)際的 js 花費(fèi)更多時(shí)間;)。錯(cuò)誤出現(xiàn)在 reducer 函數(shù)中,并且與 Flow 期望 Object.entries 鍵/值對(duì)中的第二個(gè)數(shù)組項(xiàng)“混合”(我認(rèn)為)有關(guān)。但我想做的是告訴 Flow,對(duì)于這個(gè)函數(shù),我們可以期望一個(gè)對(duì)象作為鍵/值數(shù)組中的值,如下所示:Type ExpectedCurrentItem = [string, { [string] : string} ] } 甚至更好: Type ExpectedCurrentItem = [string, { ['en' | 'nb'] : string} ] }(是的,我知道我可以用另一種方式解決這個(gè)問題,例如使用 Object.keys() 代替,并且我已經(jīng)設(shè)法獲得了一個(gè)沒有 Flow 錯(cuò)誤的替代解決方案,但顯然我對(duì) Flow 有一些不明白的地方邏輯,它嘮叨我)。非常感謝任何見解!
查看完整描述

1 回答

?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

由于缺乏對(duì)這個(gè)問題的回應(yīng),我重寫了我的代碼以消除流程錯(cuò)誤:


type LangKeys = 'en' | 'nb'

type LangKeyValObj =  {[string]: string | void}

type LangObj = {[LangKeys] : {translation: LangKeyValObj} }


const useLanguages : $ReadOnlyArray<LangKeys> = [

  'nb',

  'en'

]


const resources : LangObj = useLanguages.reduce( ( obj: LangObj, langKey : LangKeys ) => {

  const trans = Object.keys( langContent ).reduce( ( o: LangKeyValObj, key: string ) => {

    o[key] = langContent[key][langKey]

    return o

  },{} )

  obj[langKey] = { translation: trans }

  return obj

},{} )


查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 1 回答
  • 0 關(guān)注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)