BigRational.js
BigRational.js copied to clipboard
Missing Typescript definitions
Hi, Where can I find BigRational typescript definitions? I've seen it exists https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/big-integer for big integer but couldn't find the repo for big-rational
I'm not sure that anybody's taken the effort to create them yet, since BigRational isn't as popular as BigInteger.
I have a basic type for big-rational here, just put together quickly to get by.
declare module 'big-rational' {
class BigRational {
public numerator: BigInteger;
public denominator: BigInteger;
abs(): BigRational;
add(num: BigRational | string | number): BigRational;
divide(by: BigRational | string | number): BigRational;
divide(num: BigInteger | number, denom: BigInteger | number): BigRational;
ceil(toBigInt?: false): BigRational;
ceil(toBigInt: true): BigInteger;
compareAbs(to: BigRational | BigInteger | number): -1 | 0 | 1;
compare(to: BigRational | BigInteger | number): -1 | 0 | 1;
compareTo(to: BigRational | BigInteger | number): -1 | 0 | 1;
eq(to: number | BigRational): boolean;
equals(to: number | BigRational): boolean;
floor(toBigInt?: false): BigRational;
floor(toBigInt: true): BigInteger;
geq(than: BigRational | BigInteger | number): boolean;
greater(than: BigRational | BigInteger | number): boolean;
greaterOrEquals(than: BigRational | BigInteger | number): boolean;
gt(than: BigRational | BigInteger | number): boolean;
isNegative(): boolean;
isPositive(): boolean;
isZero: boolean;
lesser(than: BigRational | BigInteger | number): boolean;
lesserOrEquals(than: BigRational | BigInteger | number): boolean;
leq(than: BigRational | BigInteger | number): boolean;
lt(than: BigRational | BigInteger | number): boolean;
minus(num: BigRational | string | number): BigRational;
mod(num: BigRational | BigInteger | number): BigRational;
multiply(by: BigRational | string | number): BigRational;
negate(): BigRational;
neq(to: BigRational | string | number): BigRational;
notEquals(to: BigRational | string | number): BigRational;
over(by: BigRational | string | number): BigRational;
plus(num: BigRational | string | number): BigRational;
pow(to: BigInteger | number): BigRational;
reciprocate(): BigRational;
round(toBigInt?: false): BigRational;
round(toBigInt: true): BigInteger;
subtract(num: BigRational | string | number): BigRational;
times(by: BigRational | string | number): BigRational;
toDecimal(num: number): string;
toString(): string;
valueOf(): number;
}
/**
* Create new BigRational from string
* eg: "5/4" or "1.25" or "1_1/4"
* @param num
*/
export default function (num: string): BigRational;
/**
* Create new BigRational from numeric type
* @param num
*/
export default function (num: number | BigInteger | BigRational): BigRational;
/**
* Create new BigRation from numerator and denominator
* @param num
* @param denom
*/
export default function (
num: number | string,
denom: number | string,
): BigRational;
/**
* Create new BigRational (Zero Value)
*/
export default function (): BigRational;
}