我有一个看起来像这样的模板(我使用的是一个使用它作为重复项的基础的组件,它是p-pickList,但问题并不是特定于该组件,仅作为示例)
对于背景,假设我有一个类型Foo,我的组件有一个foos: Foo[],我将它提供给属性<p-pickList>下的组件,[source]并为它做内部*ngFor,我所要做的就是提供一个模板
<ng-template let-foo pTemplate="item">
...
{{ foo.anythingGoesHereWithNoWarningAndNoAutocomplete }}
Run Code Online (Sandbox Code Playgroud)
但是,类型信息foo似乎丢失了.
我是类型安全的忠实粉丝,我喜欢Intellij(或任何其他编辑器)可以在模板内部向我显示警告我做了类似指定无效属性的事情 foo
如果我有一个常规*ngFor,它会推断出类型foo
<div *ngFor="let foo of foos">
{{ foo.autoCompleteWorksInMostIDEsAsWellAsWarningIfInvalidProp }}
Run Code Online (Sandbox Code Playgroud)
是否有任何语法可以让我提示类型let-foo?(希望大多数IDE都能识别).
如果我不想依赖IDE,有没有办法让ng编译器类型检查foo(由let-foo声明)?
tl; dr是否有一种语法可以让我输入注释模板输入变量?例如这样的东西组成语法?
let-foo="$implicit as Foo"还是let-foo-type="Foo"?
一个愚蠢的想法是在我的组件中有一个身份功能,例如
identity(foo: Foo): Foo {
return foo;
}
Run Code Online (Sandbox Code Playgroud)
但是做
{{ identity(foo).fooProp }}
不是一个很大的进步
{{ (foo as Foo).fooProp }}
ham*_*ima -2
VSCode 应该具有开箱即用的功能,刚刚在 stackblitz 中进行了测试:https://stackblitz.com/edit/angular-type-assertion ?file=src/app/app.component.html
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |