, Flow. , , , , Flow , . :
export opaque type Int = number;
export function int(n: number): Int {
if (!Number.isFinite(n)) {
throw new Error('Not a (finite) number');
}
return Math.round(n);
}
export function isPrime(n: Int): boolean {
for (let i = 2; i < Math.sqrt(n); i++) {
if (n % i === 0) return false;
}
return true;
}
:
import { int, isPrime } from './lib';
isPrime(int(NaN));
isPrime(int(3.14));
isPrime(3.14);