Breeze类型的getProperty方法不适用于Typescript
Breeze type getProperty method does not work with Typescript
微风文档显示了这一点,以获取实体上属性的属性类型:
//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的打字错误吗?或者有其他方法可以调用这个方法吗
您有两个选项:
- 铸造:
em.metadataStore.getEntityType("Person") as EntityType;
- 更改
getEntityType
的定义以在.d.ts
文件中返回EntityType
请记住,更改类型信息总是安全的——最糟糕的情况是导致TypeScript编译错误。这是因为所有类型信息都被擦除了。(异常是更改类的名称或扩展,因为它被编译为js。)
相关文章:
- html5 drawImage适用于firefox,而不是chrome
- Jquery Ajax POST不工作.适用于GET
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- .load()适用于window,而不是ID
- 使用Jquery更改css样式适用于id's、 不在课堂上
- 提交按钮不会;不适用于Chrome或Firefox,但适用于Internet Explorer
- 为什么 javascript 中的“btoa”编码适用于 20 位字符串而不是 20 位整数
- Javascript String to Date适用于Chrome,而不是FF或Safari
- Onchange,向上,向下箭头键适用于FF和Chrome,但在IE中不起作用
- .load() 适用于 IE 和 dreamweaver 预览版,但不能使用 opera 和 chrome
- 找不到适用于 Highcharts 的 JSON 数组语法
- 为什么在jQuery中使用focusout适用于Firefox,而使用addEventListener则不适用;t
- jQuery选择菜单验证器适用于FF和Chrome,但不适用IE
- 单选按钮'onclick'适用于Chrome和Firefox,但不适用IE
- JQuery ScrollTop适用于chrome,但不适用firefox
- window.opener.location.href适用于IE,但不适用Chrome或Safari
- Frame Busting buster不完全适用于IE
- Jquery touch punch适用于Chrome和Firefox,但不适用IE
- 背景更改仅适用于chrome+$.预加载不适用;不起作用
- JavaScript window.location.replace适用于Firefox,但不适用IE或Chrome