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