@thi.ng/units
Version:
Extensible SI unit creation, conversions, quantities & calculations (incl. List-like DSL and ~170 predefined units & constants)
101 lines • 1.86 kB
TypeScript
export interface Unit {
/**
* SI base dimension vector ({@link Dimensions})
*/
dim: Dimensions;
/**
* Scaling factor relative to the coherent unit
*/
scale: number;
/**
* Zero offset value
*/
offset: number;
/**
* True, if this unit is coherent.
*
* @remarks
* Reference:
* - https://en.wikipedia.org/wiki/Coherence_(units_of_measurement)
*/
coherent: boolean;
}
export interface NamedUnit extends Unit {
/**
* Symbol under which this unit can be looked up with via {@link asUnit} and
* others.
*/
sym: string;
/**
* This unit's human readable description/name.
*/
name: string;
}
export type MaybeUnit = Unit | string;
/**
* Vector of the 7 basic SI unit dimensions.
*
* @remarks
* In order:
*
* - 0 = mass
* - 1 = length
* - 2 = time
* - 3 = current
* - 4 = temperature
* - 5 = amount of substance
* - 6 = luminous intensity
*
* Note: For dimensionless units, all dimensions are zero.
*
* Reference:
* https://en.wikipedia.org/wiki/SI_base_unit
*/
export type Dimensions = [
number,
number,
number,
number,
number,
number,
number
];
/**
* A known metric prefix.
*/
export type Prefix = keyof typeof PREFIXES;
/**
* @remarks
* Reference:
* https://en.wikipedia.org/wiki/Metric_prefix
*/
export declare const PREFIXES: {
Q: number;
R: number;
Y: number;
Z: number;
E: number;
P: number;
T: number;
G: number;
M: number;
k: number;
h: number;
d: number;
c: number;
m: number;
µ: number;
n: number;
p: number;
f: number;
a: number;
z: number;
y: number;
r: number;
q: number;
};
/**
* Dimensionless unit preset.
*/
export declare const NONE: Unit;
//# sourceMappingURL=api.d.ts.map