2017-02-14 92 views
1

我面臨着以下問題Flow別名類型:創建從對象類型屬性

我有一個對象的類型別名,A

type A = { 
    B: { 
    C: string 
    } 
} 

我想創建另一種類型的別名,B pe,在A中有B財產的簽名。

我試着用type B = A.B;但流動引發以下錯誤:

[flow] [flow] B (Property cannot be accessed on type `A`) 

我發現了一個解決方案,但它是一個有點棘手,不優雅可言:

type A = { 
    B: { 
    C: string 
    } 
} 

//FAKE constant of type A 
const fakeA : A = (null : any); 

type B = typeof fakeA.B; 

任何其他解決辦法?

感謝您的幫助。

+0

請提供一些額外的上下文 - 這是什麼語言?另外,當你說「它不起作用」時,你是否有任何錯誤,或者它不起作用? – Randall

+0

此外,「流量」是一個元標籤,通常不會被使用。應該有一個你正在使用的語言的標籤。 – Randall

+1

我正在使用JavaScript(ES6)和Flow。 –

回答

0

你能做到嗎?

type B = { 
    C: string 
} 
type A = { 
    B: B 
} 

這不完全是你要求的,但它確實允許你避免重複。我不相信有一種方法可以完全滿足你的要求。

+0

這不完全是我在找的東西。我目前正在使用這種方法。感謝你的回答。 –