UNPKG

data-unit

Version:

Simple TypeScript/ES2017 classes to represent unit values (like time/data size)

35 lines (34 loc) 1.29 kB
export interface UnitKeywords<T> { [key: string]: T; } export declare abstract class Amount<U extends number, A extends Amount<U, A>> { readonly value: number; readonly unit: U; readonly previousUnit: U; readonly nextUnit: U; protected abstract exchangeRates: { unit: U; multiplier: number; }[]; constructor(value: number, unit: U); protected create(value: number, unit: U): A; protected unaryOp(op: (a: number) => number): A; protected binaryOp(value: number | string | A, op: (a: number, b: number) => number): A; protected ternaryOp(value1: number | string | A, value2: number | string | A, op: (a: number, b: number, c: number) => number): A; convert(unit: U): A; as(unit?: U, decimals?: number): number; div(value: number | string | A): A; mul(value: number | string | A): A; plus(value: number | string | A): A; minus(value: number | string | A): A; floor(): A; ceil(): A; round(decimals?: number): A; clamp(min: number | string | A, max: number | string | A): A; atMost(max: number | string | A): A; atLeast(min: number | string | A): A; unitToString(): string; toHuman(): A; toHumanString(): string; toString(): string; }