2016-09-20 152 views
2

我正在嘗試在我的函數上使用flowtype。我下面舉個例子:flowtype - 函數參數只能是一個對象的屬性值

const operations = { 
    create: 'create', 
    update: 'update', 
    remove: 'remove' 
} 

foo('create') or foo('update') or foo('remove') 

function foo(op) { 
    console.log(op) 
} 

op只能是valuesoperations對象之一

我怎樣才能改變foo功能與流動型的工作,我需要

回答

3

您可以創建一個union type

function foo(op: 'create' | 'update' | 'remove') { 
    // ... 
} 

編輯

如果operations鍵總是匹配值,你可以做

function foo(op: $Enum<typeof operations>) { 
    // ... 
} 

see here

+0

我希望有我添加新的屬性對象將擴展並避免使用辦法聯盟 – Decrypter

相關問題