Microsoft/TypeScript
Ver no GitHubArgument of type 'this' is not assignable to parameter of type 'NonNullable'?
Open
#41.340 aberto em 30 de out. de 2020
Effort: DifficultExperimentation NeededHelp WantedSuggestion
Métricas do repositório
- Stars
- (48.455 stars)
- Métricas de merge de PR
- (Mesclagem média 6d 17h) (9 fundiu PRs em 30d)
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: