Files
test-repo/tests/flow/predicates-declared/is-string-decl.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

19 lines
540 B
JavaScript

// @flow
declare function is_string(x: mixed): boolean %checks(typeof x === "string");
declare function is_number(x: mixed): boolean %checks(typeof x === "number");
// Feature check:
function foo(x: string | Array<string>): string {
if (is_string(x)) {
// The use of `is_string` as a conditional check
// should guarantee the narrowing of the type of `x`
// to string.
return x;
} else {
// Accordingly the negation of the above check
// guarantees that `x` here is an Array<string>
return x.join();
}
}