Microsoft/TypeScript
Auf GitHub ansehenArgument of type 'this' is not assignable to parameter of type 'NonNullable'?
Open
#41.340 geöffnet am 30. Okt. 2020
Effort: DifficultExperimentation NeededHelp WantedSuggestion
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
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: