2017-02-14 93 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

这不完全是我在找的东西。我目前正在使用这种方法。感谢你的回答。 –