mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-20 12:00:53 +08:00
Add schemeNumber part of javascript-bignum library
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
/// <reference path="javascript-bignum.d.ts"/>
|
||||
let m = SchemeNumber("1");
|
||||
let n = SchemeNumber(2);
|
||||
|
||||
let sum: SchemeNumber = SchemeNumber.fn["+"](m, n);
|
||||
sum = SchemeNumber.fn["+"](m, 1);
|
||||
sum = SchemeNumber.fn["+"](m, "12");
|
||||
sum = SchemeNumber.fn["+"]("12", "25");
|
||||
|
||||
let floored: SchemeNumber = SchemeNumber.fn.floor(m);
|
||||
|
||||
let str: string = floored.toString(16);
|
||||
str = floored.toExponential(2);
|
||||
str = floored.toPrecision(2);
|
||||
str = floored.toFixed(2);
|
||||
|
||||
let num: number = maxIntegerDigits;
|
||||
num = VERSION[0];
|
||||
num = VERSION.length;
|
||||
|
||||
raise("fake error", "This is not really an error", m);
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
// Type definitions for javascript-bignum
|
||||
// Project: https://github.com/jtobey/javascript-bignum
|
||||
// Definitions by: Nathan Shively-Sanders <https://github.com/sandersn>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
// Documentation: http://john-edwin-tobey.org/Scheme/javascript-bignum/docs/files/schemeNumber-js.html
|
||||
|
||||
// This version only includes typing for schemeNumber, not the full library
|
||||
declare type SchemeOperator = (...args: (string | SchemeNumber | number)[]) => SchemeNumber;
|
||||
declare var VERSION: number[];
|
||||
declare function raise(conditionType: string, message: string, ...irritants: any[]): void;
|
||||
declare var maxIntegerDigits: number;
|
||||
declare interface SchemeFn {
|
||||
[opname: string]: SchemeOperator;
|
||||
inexact: SchemeOperator;
|
||||
exact: SchemeOperator;
|
||||
max: SchemeOperator;
|
||||
min: SchemeOperator;
|
||||
abs: SchemeOperator;
|
||||
div: SchemeOperator;
|
||||
mod: SchemeOperator;
|
||||
div0: SchemeOperator;
|
||||
mod0: SchemeOperator;
|
||||
gcd: SchemeOperator;
|
||||
lcm: SchemeOperator;
|
||||
numerator: SchemeOperator;
|
||||
denominator: SchemeOperator;
|
||||
floor: SchemeOperator;
|
||||
ceiling: SchemeOperator;
|
||||
truncate: SchemeOperator;
|
||||
round: SchemeOperator;
|
||||
rationalize: SchemeOperator;
|
||||
exp: SchemeOperator;
|
||||
log: SchemeOperator;
|
||||
sin: SchemeOperator;
|
||||
cos: SchemeOperator;
|
||||
tan: SchemeOperator;
|
||||
asin: SchemeOperator;
|
||||
acos: SchemeOperator;
|
||||
atan: SchemeOperator;
|
||||
sqrt: SchemeOperator;
|
||||
expt: SchemeOperator;
|
||||
magnitude: SchemeOperator;
|
||||
angle: SchemeOperator;
|
||||
}
|
||||
declare interface SchemeNumber {
|
||||
(value: string | number): SchemeNumber;
|
||||
toString(radix: number): string;
|
||||
toFixed(fractionDigits: number): string;
|
||||
toExponential(fractionDigits: number): string;
|
||||
toPrecision(precision: number): string;
|
||||
fn: SchemeFn;
|
||||
}
|
||||
declare var SchemeNumber: SchemeNumber;
|
||||
Reference in New Issue
Block a user