Фон
У меня есть шаблон, который выглядит следующим образом (я использую какой-то компонент, который использует это как основу для повторяющегося элемента, это p-pickList, но вопрос не является специфическим для этого компонента, как пример)
Для фона предположим, что у меня есть тип Foo
а мой компонент имеет foos: Foo[]
, я <p-pickList>
компоненту <p-pickList>
под атрибутом [source]
и выполняет его внутреннюю *ngFor
для него, все, что мне нужно сделать, это предоставить шаблон
<ng-template let-foo pTemplate="item">
...
{{ foo.anythingGoesHereWithNoWarningAndNoAutocomplete }}
Однако информация о типе на foo
кажется, потеряна.
Я большой поклонник безопасности типов, и мне нравится, что Intellij (или любой другой редактор) может показать мне предупреждение, если внутри шаблона я делаю что-то вроде указания недопустимого атрибута foo
Если бы у меня была обычная *ngFor
, она бы *ngFor
тип foo
<div *ngFor="let foo of foos">
{{ foo.autoCompleteWorksInMostIDEsAsWellAsWarningIfInvalidProp }}
Вопросы:
-
Есть ли какой-либо синтаксис, который позволит мне намекнуть на тип
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;
}
но делать
{{ identity(foo).fooProp }}
Это не большое улучшение
{{ (foo as Foo).fooProp }}