微风docs显示此信息以获取实体上属性的属性类型:
//get the Person type
var personType = em.metadataStore.getEntityType("Person");
//get the property definition to validate
var websiteProperty = personType.getProperty("website");
但如果您使用的是Typescript,则无效。
MetadataStore.getEntityType
的类型定义会返回IStructuralType
。但getProperty
位于EntityType
而不是IStructuralType
。
EntityType
确实实施了IStructuralType
,但无法保证IStructuralType
是EntityType
。
这是Breeze打字时的错误吗?或者是否有其他方法可以调用此方法?
答案 0 :(得分:1)
您有两种选择:
em.metadataStore.getEntityType("Person") as EntityType;
getEntityType
的定义以在EntityType
文件中返回.d.ts
请记住,更改类型信息始终是安全的 - 您可以做的最糟糕的事情是导致TypeScript编译错误。这是因为所有类型信息都被删除了。 (例外是更改类的名称或扩展,因为它被编译为js。)