Improve error message for undeclared class property initialization #643
Open
Description
Flow requires that class properties be declared before they can be initialized in a constructor. This behavior is reasonable, but the error message should guide the user to the solution:
/* @flow */
class Foo {
constructor() {
this.bar = "baz";
}
}
test.js|5 col 5 error| assignment of property bar
|| Property not found in
test.js|3 col 7 error| Foo
||
A better error message would direct the user to declare the type of bar
, as follows:
/* @flow */
class Foo {
bar: string;
constructor() {
this.bar = "baz";
}
}
|| No errors!
A better message might be "Property must be declared in class."