measure-convert
Version:
JS/TS package for managing units of measurement. Convert, add, subtract, multiply, divide, and compare units of measurement.
48 lines (47 loc) • 2.62 kB
TypeScript
import { Unit } from "./units/Unit";
export interface SerializedMeasurement {
value: number;
unit: {
name: string;
symbol: string;
description: string;
baseUnitConversionFactor: number;
coefficient?: number;
constant?: number;
baseUnitForConversion?: number;
};
}
export declare class Measurement<U extends Unit> {
value: number;
unit: U;
constructor(value: number, unit: U);
converted<V extends Unit>(targetUnit: V): Measurement<V>;
add(other: Measurement<U>): Measurement<U>;
static add<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): Measurement<U>;
subtract(other: Measurement<U>): Measurement<U>;
static subtract<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): Measurement<U>;
equals(other: Measurement<U>): boolean;
static equals<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
closeTo(other: Measurement<U>, tolerance: number): boolean;
static closeTo<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>, tolerance: number): boolean;
greaterThan(other: Measurement<U>): boolean;
static greaterThan<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
lessThan(other: Measurement<U>): boolean;
static lessThan<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
greaterThanOrEqual(other: Measurement<U>): boolean;
static greaterThanOrEqual<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
lessThanOrEqual(other: Measurement<U>): boolean;
static lessThanOrEqual<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): boolean;
ratioTo(other: Measurement<U>): number;
static ratioTo<U extends Unit>(measurement1: Measurement<U>, measurement2: Measurement<U>): number;
scaledBy(factor: number): Measurement<U>;
static scaledBy<U extends Unit>(measurement: Measurement<U>, factor: number): Measurement<U>;
private formatValue;
get shortLabel(): string;
getShortLabel(decimalPlaces?: number, showApprox?: boolean): string;
get longLabel(): string;
getLongLabel(decimalPlaces?: number, showApprox?: boolean): string;
static hydrate<T extends typeof Unit, U extends InstanceType<T>>(UnitClass: T, data: SerializedMeasurement): Measurement<U>;
static hydrateAuto(data: SerializedMeasurement): Measurement<any>;
static detectUnitType(data: SerializedMeasurement): string | null;
}