typescript - 使用键值管道进行打字稿类型检查
问题描述
我正在开发一个 Ionic/Angular 项目,我正在尝试消除 html 文件中的类型检查问题。
我的 .ts 文件中有这样的 hTest 变量
hTest: {[k:string]: {fn:string, ln:string}} = {'user1': {fn: 'f1', ln: 'l1'}, 'user2': {fn: 'f2', ln: 'l2'}};
Typescript 似乎对此很满意。我像这样在我的html视图中循环显示它们
但是打字稿不理解 fn 和 ln 是什么(红色下划线),当我使用 usr.value.fn 或 usr.value.ln 在 html 中使用 keyvalue 管道访问它们时。但是,它会正确打印它们,如下所示,因此它确实获得了值。
tsc --version gives Version 4.1.3
这是我在 Visual Studio 上使用的TS 版本
如何让 Typescript 理解上面 html 中的 fn 和 ln 变量,并且不让它通过下划线显示语法错误?
谢谢,桑杰。
解决方案
您的问题是有关键入的错误警告消息。它与Angular提供的KeyValuePipe有关。您可以通过在 IDE 中启用名为 Ivy 的新 Angular 语言服务来解决此问题。
这是一个演示相同问题的错误报告:Generics do not correct infer in template pipe usage。
如何在 Visual Studio Code 中启用 Ivy:https ://github.com/angular/vscode-ng-language-service/releases/tag/v11.1.0
推荐阅读
- android - 系统应用电话如何向拨号器发送响应?
- jspdf - jsPDF - 错误 - 无法在 Chrome 中加载 PDF 文档
- laravel - Eloquent:API 资源与分形
- java - 如何从 main 方法加载 servlet
- javascript - 在 jQuery 过滤函数中使用动态创建的变量
- ios - 如何使用具有 2 个部分和多个单元格标识符的一个表视图?
- c# - c# 使用接口(IList)进行隐式转换
- sightly - Sightly @extension='html' 在 URL 的末尾添加一个空格
- angular - 函数随机字符串():字符串
- javascript - 将 facebook 登录按钮的宽度设置为 100%