Files
test-repo/tests/flow/call_properties/C.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

35 lines
772 B
JavaScript

// You should be able to use an object as a function
function a(x: { (z: number): string }): (z: number) => string {
return x;
}
// ...and it should notice when the return type is wrong
function b(x: { (z: number): string }): (z: number) => number {
return x;
}
// ...or if the param type is wrong
function c(x: { (z: number): string }): (z: string) => string {
return x;
}
// ...or if the arity is wrong
function d(x: { (z: number): string }): () => string {
return x;
}
// ...or if it doesn't have a call property
function e(x: {}): () => string {
return x;
}
// AnyFunT should also be allowed
function f(x: { (z: number): string }): Function {
return x;
}
// ... but only if the object is callable
function g(x: {}): Function {
return x; // error
}