Skip to content

Improve error message for undeclared class property initialization #643

Open
@samwgoldman

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."

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions