Flow should force overriding if a method returns this
- Vorherrschende Sprache
- Rust
- Sterne
- 22.3k
- Forks
- 1.9k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
While I was brainstorming a solution for #2959 I stumbled upon this issue.
The gist is that flow should force an override of `method` in `B`. Otherwise we can get false positives.
A reproducible case:
```js
class A {
name: string
constructor(name: string) {
this.name = name
}
method(f: (from: string) => string): this {
return new this.constructor(f(this.name))
}
}
class B extends A {
surname: string
constructor(name, surname) {
super(name)
this.surname = surname
}
}
const b = new B('a', 'b')
const b2 = b.method(() => 'b')
// surname is undefined but there's no error
const surname: string = b2.surname
```
If you find it a welcome addition I will try to implement it.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.