Microsoft/TypeScript
Voir sur GitHubArgument of type 'this' is not assignable to parameter of type 'NonNullable'?
Open
#41 340 ouverte le 30 oct. 2020
Effort: DifficultExperimentation NeededHelp WantedSuggestion
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
Description
TypeScript Version: 4.0.3
Search Terms: 'this' is not assignable to 'NonNullable'
Code
abstract class TreeNode {
parent: this | null = null; // polymorph this
left: this | null = null;
right: this | null = null;
replaceChild(child: this, replacement: this | null = null) { // this - polymorph type
this.left = child;
this.right = replacement;
}
removeNode() {
this.parent?.replaceChild(this, null); // ERROR
}
removeNode2Way() {
if (this.parent) {
this.parent.replaceChild(this, null); // OK
}
}
}
Expected behavior: Conditional call without errors.
Actual behavior: Error: Argument of type 'this' is not assignable to parameter of type 'NonNullable'
Playground Link: Playground
Related Issues: