Vscode-ng-language-service: 特征:模板输入绑定类型检查

创建于 2017-08-11  ·  7评论  ·  资料来源: angular/vscode-ng-language-service

现在,当您为 _Directive_ 或 _Component_ 使用输入绑定时,检查使用的变量是否存在,这是完美的。 但是此检查不检查分配给它的输入和变量是否属于同一类型。

如果它还可以检查匹配类型或是否可分配,那将是绝对完美的。 这可能是对_@angular/language-service_ 的请求

谢谢

feature ivy lib

最有用的评论

在我看来,这是一个大问题。
紧密的 Typescript 集成被大量宣传为 Angular2+ 的资产,但实际上大约 50% 的代码实际上没有经过类型检查。 如果您将输入作为函数传递给组件,这基本上意味着所有这些函数调用都是完全无类型的。 类型只在组件内起作用,而对于组件到组件的通信来说它完全没用,因为它实际上更有用。

这是一个更大的问题,因为应用程序中最常更改的部分缺少输入。

在这一点上,React 具有比 Angular 更好的打字稿集成,这与通常所说的相反。

所有7条评论

有没有关于这个问题的更新? 这几乎是使用 angular 的少数坏事之一:类型安全模板绑定。

在我看来,这是一个大问题。
紧密的 Typescript 集成被大量宣传为 Angular2+ 的资产,但实际上大约 50% 的代码实际上没有经过类型检查。 如果您将输入作为函数传递给组件,这基本上意味着所有这些函数调用都是完全无类型的。 类型只在组件内起作用,而对于组件到组件的通信来说它完全没用,因为它实际上更有用。

这是一个更大的问题,因为应用程序中最常更改的部分缺少输入。

在这一点上,React 具有比 Angular 更好的打字稿集成,这与通常所说的相反。

我还提到自定义组件输入没有自动完成功能。 这可能与这个问题有关。

相关,可能阻止: https :

这是必需的,因为它_非常_容易出错:

<button (click)="foo('bar')">Click me</button>

使用有界方法:

// take note of the parameter type, where the template passes through a string.
public foo(bar: boolean): void {
    // ...
}

这至少应该给出某种警告。

tsConfig文件中的fullTemplateTypeCheck为true 将导致ng build报告错误,如果它为false,它就会失败。

同意这是一个大问题,需要在语言服务中。 当语言服务使用 Ivy 编译器作为后端时,此功能将可用(相关工作正在进行中)。

此问题已由v11.1.0 中发布的新常春藤本地语言服务
目前这是一项可选功能,请尝试一下,如果您有任何反馈,请告诉我们。
为了获得最佳的编辑器体验,请确保您的项目在angularCompilerOptions启用了strictTemplates angularCompilerOptions
如果您遇到类似的错误,请提交一个新问题。 我会暂时关闭这个。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

MarcOne68 picture MarcOne68  ·  5评论

mhamri picture mhamri  ·  4评论

linocatucci picture linocatucci  ·  5评论

JoannaFalkowska picture JoannaFalkowska  ·  3评论

daveriedstra picture daveriedstra  ·  3评论