@fractorysolutions/safe-units
Version:
Type-safe TypeScript units of measure
43 lines (42 loc) • 1.23 kB
TypeScript
import { GenericMeasure } from "../measure/genericMeasure";
import { GenericMeasureType } from "../measure/genericMeasureFactory";
interface BaseUnitsMap {
meters: "length";
kilograms: "mass";
seconds: "time";
amperes: "current";
kelvin: "temperature";
moles: "substance";
candelas: "intensity";
radians: "planeAngle";
steradians: "solidAngle";
bits: "memory";
}
export type BaseUnits<N> = {
[U in keyof BaseUnitsMap]: GenericMeasure<N, {
[K in BaseUnitsMap[U]]: "1";
}>;
};
export declare const createBaseUnits: <N>(MeasureType: GenericMeasureType<N, any>) => BaseUnits<N>;
export declare const meters: GenericMeasure<number, {
length: "1";
}>, kilograms: GenericMeasure<number, {
mass: "1";
}>, seconds: GenericMeasure<number, {
time: "1";
}>, amperes: GenericMeasure<number, {
current: "1";
}>, kelvin: GenericMeasure<number, {
temperature: "1";
}>, moles: GenericMeasure<number, {
substance: "1";
}>, candelas: GenericMeasure<number, {
intensity: "1";
}>, radians: GenericMeasure<number, {
planeAngle: "1";
}>, steradians: GenericMeasure<number, {
solidAngle: "1";
}>, bits: GenericMeasure<number, {
memory: "1";
}>;
export {};