38 lines
666 B
JavaScript
38 lines
666 B
JavaScript
/* @flow */
|
|
|
|
function veryOptimistic(isThisAwesome: true): boolean {
|
|
return isThisAwesome;
|
|
}
|
|
|
|
var x : boolean = veryOptimistic(true);
|
|
var y : boolean = veryOptimistic(false); // error
|
|
|
|
function veryPessimistic(isThisAwesome: true): boolean {
|
|
return !isThisAwesome; // test bool conversion
|
|
}
|
|
|
|
var x : boolean = veryPessimistic(true);
|
|
var y : boolean = veryPessimistic(false); // error
|
|
|
|
type MyOwnBooleanLOL = true | false
|
|
|
|
function bar(x: MyOwnBooleanLOL): false {
|
|
if (x) {
|
|
return x;
|
|
} else {
|
|
return !x;
|
|
}
|
|
}
|
|
|
|
bar(true);
|
|
bar(false);
|
|
bar(1); // error
|
|
|
|
function alwaysFalsy(x: boolean): false {
|
|
if (x) {
|
|
return !x;
|
|
} else {
|
|
return x;
|
|
}
|
|
}
|