如何在流中使用对象属性的类型?
问题描述:
如何在流中使用对象属性的类型?例如如何在流中使用对象属性的类型?
type A = {
someproperty: string
}
// throws error
const b: A.someproperty = "hello"
答
您可以使用$PropertyType<T,x>
utility type。
type A = {
someproperty: string
}
// this works fine
const b: $PropertyType<A, 'someproperty'> = "hello"
答
正如您已经在自己的答案中所述,您可以使用$PropertyType
。但请记住,这不是官方的,未来可能并不总是一样。它甚至可以完全删除。 React在幕后使用$PropertyType
,但Facebook的开发人员可以与Flow团队一起工作,并且可以更好地了解功能路线图。
如果您能够控制所有类型,那么最好以可以按名称引用属性类型的方式进行设计。在很多情况下,一个简单的别名将起作用:
type SomePropertyOfA = string;
type A = {
someproperty: SomePropertyOfA
}
const b: SomePropertyOfA = "hello"