Допустим, у меня есть эти классы:
export abstract class AbstractSubjectChild<T extends Subject>
{
protected parent: T | undefined;
public hasParent()
{
return this.parent != null;
}
public setParent(parent: T): void
{
this.parent = parent;
}
public getParent(): T | undefined
{
return this.parent;
}
}
class Child extends AbstractSubjectChild<Post>
{
}
И я хочу сделать что-то вроде этого:
const child = new Child();
if (child.hasParent()) {
const post: Post = child.getParent();
}
Есть ли способ сказать компилятору TS выводить тип на основе на hasParent()
результат без необходимости явно использовать as Post
везде?