несмотря на тип защиты в шаблоне, код VS сообщает об ошибке при попытке получить доступ к свойству производного класса - PullRequest
1 голос
/ 26 февраля 2020

Рассмотрим следующий код:

import { Component } from "@angular/core";

@Component({
    template:`
        <div *ngIf="isBar(test)">
            {{test.someProp}}
        </div>
    `
})
export class TypeGuardFail{
    test: Foo;

    isBar(val: Bar | any): val is Bar
    {
        return (<Bar>val).someProp !== undefined;
    }
}

export class Foo{

}

export class Bar extends Foo{
    someProp = "";
}

Это прекрасно работает, когда я его запускаю. Однако в VS Code я получаю волнистую красную линию, которая гласит: Identifier 'someProp' is not defined. 'Foo' does not contain such a member. Очевидно, что эта ошибка не имеет смысла в этом месте, и я хотел бы знать, как я могу от нее избавиться? Кроме того, когда я использую этот тип защиты где-то в коде TS, я не получаю никаких ошибок, так что это просто в шаблоне, где он работает неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...