首页 > 解决方案 > 使用键值管道进行打字稿类型检查

问题描述

我正在开发一个 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 变量,并且不让它通过下划线显示语法错误?

谢谢,桑杰。

标签: typescriptionic-frameworksyntax-error

解决方案


您的问题是有关键入的错误警告消息。它与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


推荐阅读