Breeze类型getProperty方法不适用于Typescript

时间:2015-12-15 19:52:41

标签: javascript typescript breeze

微风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,但无法保证IStructuralTypeEntityType

这是Breeze打字时的错误吗?或者是否有其他方法可以调用此方法?

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 施放它:em.metadataStore.getEntityType("Person") as EntityType;
  2. 更改getEntityType的定义以在EntityType文件中返回.d.ts
  3. 请记住,更改类型信息始终是安全的 - 您可以做的最糟糕的事情是导致TypeScript编译错误。这是因为所有类型信息都被删除了。 (例外是更改类的名称或扩展,因为它被编译为js。)