Files
test-repo/tests/flow/constructor_annots/constructors.js
T
Christopher Chedeau 3375cfe605 Move tests around (#454)
* new_tests

* move_all_clobbered_tests

* remove all the tests that no longer exist

* re-run flow tests

* Move all the flow tests to tests/flow and prettier to tests/

* Move prettier tests to their own folders

* Add jsfmt files

* run prettier snapshot tests
2017-01-24 14:35:37 -08:00

22 lines
628 B
JavaScript

// Foo is a class-like function
function Foo() {
this.x = 0; // constructs objects with property x
}
Foo.y = 0; // has static property y
Foo.prototype = { m() { return 0; } };
// exporting Foo directly doesn't work
// Foo's instance and static props are not picked up
exports.Foo = Foo;
// so you want to type Foo, by declaring it as a class
interface IFooPrototype {
m: () => number;
}
interface IFoo extends IFooPrototype {
x: boolean; // error, should have declared x: number instead
static (): void;
static y: boolean; // error, should have declared static y: number instead
}
exports.Foo2 = (Foo: Class<IFoo>);