uom-types 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/index.d.cts +28 -30
- package/dist/index.d.mts +28 -30
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
|
3
3
|
|
|
4
|
+
## [4.1.2](https://github.com/RebeccaStevens/uom-types/compare/v4.1.1...v4.1.2) (2024-10-18)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* extend branding interface to unit-keys-value ([165603c](https://github.com/RebeccaStevens/uom-types/commit/165603c1fe9beaf2c523218e78778ee152fc7c87))
|
|
10
|
+
|
|
11
|
+
## [4.1.1](https://github.com/RebeccaStevens/uom-types/compare/v4.1.0...v4.1.1) (2024-10-18)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* improve handling of unitless with pow/root functions ([ad44cf3](https://github.com/RebeccaStevens/uom-types/commit/ad44cf3accf48207391c2d55b7c10f723b0dad19))
|
|
17
|
+
|
|
4
18
|
# [4.1.0](https://github.com/RebeccaStevens/uom-types/compare/v4.0.1...v4.1.0) (2024-10-18)
|
|
5
19
|
|
|
6
20
|
|
package/dist/index.d.cts
CHANGED
|
@@ -70,6 +70,15 @@ export type BrandUnitClassType = Brand & {
|
|
|
70
70
|
unitClassType: true;
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Brand with the unit keys and value.
|
|
75
|
+
*/
|
|
76
|
+
export type BrandUnitKeyValues<K, V> = Brand & Readonly<{
|
|
77
|
+
__uom_types: {
|
|
78
|
+
keys: K;
|
|
79
|
+
value: V;
|
|
80
|
+
};
|
|
81
|
+
}>;
|
|
73
82
|
/**
|
|
74
83
|
* Remove all key from the object that are `never`.
|
|
75
84
|
*/
|
|
@@ -192,14 +201,8 @@ export type UnknownUnitClass = UnknownUnitKeyValues & BrandUnitClassType;
|
|
|
192
201
|
export type UnknownUnitMeta = UnknownUnitKeyValues & Readonly<{
|
|
193
202
|
__uno_types__unit_meta_type: true;
|
|
194
203
|
}>;
|
|
195
|
-
export type UnitKeyValues<T extends UnitSubvalues> =
|
|
196
|
-
|
|
197
|
-
__uom_types__value: RemoveNeverValues<T>;
|
|
198
|
-
}>;
|
|
199
|
-
export type UnknownUnitKeyValues = Readonly<{
|
|
200
|
-
__uom_types__keys: string;
|
|
201
|
-
__uom_types__value: {};
|
|
202
|
-
}>;
|
|
204
|
+
export type UnitKeyValues<T extends UnitSubvalues> = BrandUnitKeyValues<keyof ExcludeUnitZeroSubvalues<T> extends string ? keyof ExcludeUnitZeroSubvalues<T> : never, RemoveNeverValues<T>>;
|
|
205
|
+
export type UnknownUnitKeyValues = BrandUnitKeyValues<string, {}>;
|
|
203
206
|
/**
|
|
204
207
|
* A mapping of subvalue of a unit its magnitude.
|
|
205
208
|
*
|
|
@@ -270,28 +273,28 @@ export type DivideUnitSubvalues<A extends UnitSubvalues, B extends UnitSubvalues
|
|
|
270
273
|
*
|
|
271
274
|
* @group Unit Functions
|
|
272
275
|
*/
|
|
273
|
-
export type Pow<
|
|
276
|
+
export type Pow<B extends number, E extends Exponent> = B extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<PowUnitSubvalues<Class, E>>, FlatternAlias<PowUnitSubvalues<Meta, E>>> : B extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<PowUnitSubvalues<Class, E>>> : B extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<PowUnitSubvalues<Meta, E>>> : number;
|
|
274
277
|
/**
|
|
275
278
|
* Put each subvalue of a unit to the power of an exponent.
|
|
276
279
|
*
|
|
277
280
|
* @group Unit Subvalue Functions
|
|
278
281
|
*/
|
|
279
|
-
export type PowUnitSubvalues<
|
|
280
|
-
[S in keyof
|
|
282
|
+
export type PowUnitSubvalues<B extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
|
|
283
|
+
[S in keyof B]: MultiplyExponents<GetExponent<B, S>, E>;
|
|
281
284
|
}>;
|
|
282
285
|
/**
|
|
283
286
|
* Take the nth root of a unit.
|
|
284
287
|
*
|
|
285
288
|
* @group Unit Functions
|
|
286
289
|
*/
|
|
287
|
-
export type Root<
|
|
290
|
+
export type Root<B extends number, E extends Exponent> = B extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<RootUnitSubvalues<Class, E>>, FlatternAlias<RootUnitSubvalues<Meta, E>>> : B extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<RootUnitSubvalues<Class, E>>> : B extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<RootUnitSubvalues<Meta, E>>> : number;
|
|
288
291
|
/**
|
|
289
292
|
* Take the nth root of each subvalue of a unit.
|
|
290
293
|
*
|
|
291
294
|
* @group Unit Subvalue Functions
|
|
292
295
|
*/
|
|
293
|
-
export type RootUnitSubvalues<
|
|
294
|
-
[S in keyof
|
|
296
|
+
export type RootUnitSubvalues<B extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
|
|
297
|
+
[S in keyof B]: DivideExponents<GetExponent<B, S>, E>;
|
|
295
298
|
}>;
|
|
296
299
|
export type SiUnitKeys = "Second" | "Meter" | "Kilogram" | "Mole" | "Ampere" | "Candela" | "Kelvin" | "Radian";
|
|
297
300
|
/**
|
|
@@ -1231,7 +1234,7 @@ export type HenryPerMeter = MagneticPermeabilityUnit<{}>;
|
|
|
1231
1234
|
* @see {@link Pow}
|
|
1232
1235
|
* @see {@link Cubic}
|
|
1233
1236
|
*/
|
|
1234
|
-
export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 2> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["
|
|
1237
|
+
export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 2> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types"]["value"], 2>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types"]["value"], 2>> : never;
|
|
1235
1238
|
/**
|
|
1236
1239
|
* Put the given {@link Unit} to the power of 3.
|
|
1237
1240
|
*
|
|
@@ -1240,7 +1243,7 @@ export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConv
|
|
|
1240
1243
|
* @see {@link Pow}
|
|
1241
1244
|
* @see {@link Square}
|
|
1242
1245
|
*/
|
|
1243
|
-
export type Cubic<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 3> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["
|
|
1246
|
+
export type Cubic<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 3> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types"]["value"], 3>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types"]["value"], 3>> : never;
|
|
1244
1247
|
/**
|
|
1245
1248
|
* Binary prefix denoting an order of magnitude of 10^1.
|
|
1246
1249
|
*
|
|
@@ -1355,7 +1358,7 @@ export type Pico<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
|
|
|
1355
1358
|
* @group Modifiers
|
|
1356
1359
|
* @category General
|
|
1357
1360
|
*/
|
|
1358
|
-
export type Reciprocal<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Inverse<T> : T extends UnknownUnitClass ? UnitClass<InverseUnitSubvalues<T["
|
|
1361
|
+
export type Reciprocal<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Inverse<T> : T extends UnknownUnitClass ? UnitClass<InverseUnitSubvalues<T["__uom_types"]["value"]>> : T extends UnknownUnitMeta ? UnitMeta<InverseUnitSubvalues<T["__uom_types"]["value"]>> : never;
|
|
1359
1362
|
/**
|
|
1360
1363
|
* @group Unit Classes
|
|
1361
1364
|
* @category Electromagnetic
|
|
@@ -4268,43 +4271,38 @@ export declare function modSafe<T extends number>(a: OperationIO<T>, b: Operatio
|
|
|
4268
4271
|
* @returns A function that takes a integer and returns an integer between zero (inclusive) and `b` (exclusive).
|
|
4269
4272
|
*/
|
|
4270
4273
|
export declare function modSafe<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
|
|
4271
|
-
export type
|
|
4274
|
+
export type PowResult<B extends number, E extends number> = E extends Unitless ? PowResult<B, number> : E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends Exponent ? Pow<B, E> : E extends 0.5 ? Root<B, 2> : B extends Unitless ? B : number;
|
|
4275
|
+
export type PowFunction<B extends number, E extends number> = (b: B) => PowResult<B, E>;
|
|
4276
|
+
export type RootResult<B extends number, E extends number> = E extends Unitless ? RootResult<B, number> : E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends Exponent ? Root<B, E> : E extends 0.5 ? Pow<B, 2> : B extends Unitless ? B : number;
|
|
4277
|
+
export type RootFunction<B extends number, E extends number> = (b: B) => RootResult<B, E>;
|
|
4272
4278
|
/**
|
|
4273
4279
|
* Raise a number to the power of another.
|
|
4274
4280
|
*
|
|
4275
4281
|
* @category Math
|
|
4276
4282
|
* @returns `base ** exponent`
|
|
4277
4283
|
*/
|
|
4278
|
-
export declare function pow<B extends number, E extends number>(base: B, exponent: E
|
|
4279
|
-
/**
|
|
4280
|
-
* Put a number to the power of 1/2.
|
|
4281
|
-
*
|
|
4282
|
-
* @category Math
|
|
4283
|
-
* @returns `base ** 0.5`
|
|
4284
|
-
*/
|
|
4285
|
-
export declare function pow<B extends number>(base: B, exponent: 0.5): Root<B, 2>;
|
|
4284
|
+
export declare function pow<B extends number, E extends number>(base: B, exponent: E): PowResult<B, E>;
|
|
4286
4285
|
/**
|
|
4287
4286
|
* Put a number to the power of the given value.
|
|
4288
4287
|
*
|
|
4289
4288
|
* @category Math
|
|
4290
4289
|
* @returns `(base) => base ** exponent`
|
|
4291
4290
|
*/
|
|
4292
|
-
export declare function pow<E extends number>(exponent: E): <B extends number>(base: Parameters<PowFunction<
|
|
4293
|
-
export type RootFunction<E extends number, B extends number> = E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends PosExponent ? (b: B) => Root<B, E> : (b: B) => number;
|
|
4291
|
+
export declare function pow<E extends number>(exponent: E): <B extends number>(base: Parameters<PowFunction<B, E>>[0]) => ReturnType<PowFunction<B, E>>;
|
|
4294
4292
|
/**
|
|
4295
4293
|
* Take the nth root of a number.
|
|
4296
4294
|
*
|
|
4297
4295
|
* @category Math
|
|
4298
4296
|
* @returns `base ** (1 / exponent)`
|
|
4299
4297
|
*/
|
|
4300
|
-
export declare function root<B extends number, E extends number>(base: B, exponent: E
|
|
4298
|
+
export declare function root<B extends number, E extends number>(base: B, exponent: E): RootResult<B, E>;
|
|
4301
4299
|
/**
|
|
4302
4300
|
* Take the nth root of a number.
|
|
4303
4301
|
*
|
|
4304
4302
|
* @category Math
|
|
4305
4303
|
* @returns `(base) => base ** (1 / exponent)`
|
|
4306
4304
|
*/
|
|
4307
|
-
export declare function root<E extends number>(exponent: E): <B extends number>(base: Parameters<RootFunction<
|
|
4305
|
+
export declare function root<E extends number>(exponent: E): <B extends number>(base: Parameters<RootFunction<B, E>>[0]) => ReturnType<RootFunction<B, E>>;
|
|
4308
4306
|
/**
|
|
4309
4307
|
* Take the square root of the given value.
|
|
4310
4308
|
*
|
package/dist/index.d.mts
CHANGED
|
@@ -70,6 +70,15 @@ export type BrandUnitClassType = Brand & {
|
|
|
70
70
|
unitClassType: true;
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Brand with the unit keys and value.
|
|
75
|
+
*/
|
|
76
|
+
export type BrandUnitKeyValues<K, V> = Brand & Readonly<{
|
|
77
|
+
__uom_types: {
|
|
78
|
+
keys: K;
|
|
79
|
+
value: V;
|
|
80
|
+
};
|
|
81
|
+
}>;
|
|
73
82
|
/**
|
|
74
83
|
* Remove all key from the object that are `never`.
|
|
75
84
|
*/
|
|
@@ -192,14 +201,8 @@ export type UnknownUnitClass = UnknownUnitKeyValues & BrandUnitClassType;
|
|
|
192
201
|
export type UnknownUnitMeta = UnknownUnitKeyValues & Readonly<{
|
|
193
202
|
__uno_types__unit_meta_type: true;
|
|
194
203
|
}>;
|
|
195
|
-
export type UnitKeyValues<T extends UnitSubvalues> =
|
|
196
|
-
|
|
197
|
-
__uom_types__value: RemoveNeverValues<T>;
|
|
198
|
-
}>;
|
|
199
|
-
export type UnknownUnitKeyValues = Readonly<{
|
|
200
|
-
__uom_types__keys: string;
|
|
201
|
-
__uom_types__value: {};
|
|
202
|
-
}>;
|
|
204
|
+
export type UnitKeyValues<T extends UnitSubvalues> = BrandUnitKeyValues<keyof ExcludeUnitZeroSubvalues<T> extends string ? keyof ExcludeUnitZeroSubvalues<T> : never, RemoveNeverValues<T>>;
|
|
205
|
+
export type UnknownUnitKeyValues = BrandUnitKeyValues<string, {}>;
|
|
203
206
|
/**
|
|
204
207
|
* A mapping of subvalue of a unit its magnitude.
|
|
205
208
|
*
|
|
@@ -270,28 +273,28 @@ export type DivideUnitSubvalues<A extends UnitSubvalues, B extends UnitSubvalues
|
|
|
270
273
|
*
|
|
271
274
|
* @group Unit Functions
|
|
272
275
|
*/
|
|
273
|
-
export type Pow<
|
|
276
|
+
export type Pow<B extends number, E extends Exponent> = B extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<PowUnitSubvalues<Class, E>>, FlatternAlias<PowUnitSubvalues<Meta, E>>> : B extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<PowUnitSubvalues<Class, E>>> : B extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<PowUnitSubvalues<Meta, E>>> : number;
|
|
274
277
|
/**
|
|
275
278
|
* Put each subvalue of a unit to the power of an exponent.
|
|
276
279
|
*
|
|
277
280
|
* @group Unit Subvalue Functions
|
|
278
281
|
*/
|
|
279
|
-
export type PowUnitSubvalues<
|
|
280
|
-
[S in keyof
|
|
282
|
+
export type PowUnitSubvalues<B extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
|
|
283
|
+
[S in keyof B]: MultiplyExponents<GetExponent<B, S>, E>;
|
|
281
284
|
}>;
|
|
282
285
|
/**
|
|
283
286
|
* Take the nth root of a unit.
|
|
284
287
|
*
|
|
285
288
|
* @group Unit Functions
|
|
286
289
|
*/
|
|
287
|
-
export type Root<
|
|
290
|
+
export type Root<B extends number, E extends Exponent> = B extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<RootUnitSubvalues<Class, E>>, FlatternAlias<RootUnitSubvalues<Meta, E>>> : B extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<RootUnitSubvalues<Class, E>>> : B extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<RootUnitSubvalues<Meta, E>>> : number;
|
|
288
291
|
/**
|
|
289
292
|
* Take the nth root of each subvalue of a unit.
|
|
290
293
|
*
|
|
291
294
|
* @group Unit Subvalue Functions
|
|
292
295
|
*/
|
|
293
|
-
export type RootUnitSubvalues<
|
|
294
|
-
[S in keyof
|
|
296
|
+
export type RootUnitSubvalues<B extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
|
|
297
|
+
[S in keyof B]: DivideExponents<GetExponent<B, S>, E>;
|
|
295
298
|
}>;
|
|
296
299
|
export type SiUnitKeys = "Second" | "Meter" | "Kilogram" | "Mole" | "Ampere" | "Candela" | "Kelvin" | "Radian";
|
|
297
300
|
/**
|
|
@@ -1231,7 +1234,7 @@ export type HenryPerMeter = MagneticPermeabilityUnit<{}>;
|
|
|
1231
1234
|
* @see {@link Pow}
|
|
1232
1235
|
* @see {@link Cubic}
|
|
1233
1236
|
*/
|
|
1234
|
-
export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 2> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["
|
|
1237
|
+
export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 2> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types"]["value"], 2>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types"]["value"], 2>> : never;
|
|
1235
1238
|
/**
|
|
1236
1239
|
* Put the given {@link Unit} to the power of 3.
|
|
1237
1240
|
*
|
|
@@ -1240,7 +1243,7 @@ export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConv
|
|
|
1240
1243
|
* @see {@link Pow}
|
|
1241
1244
|
* @see {@link Square}
|
|
1242
1245
|
*/
|
|
1243
|
-
export type Cubic<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 3> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["
|
|
1246
|
+
export type Cubic<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 3> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types"]["value"], 3>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types"]["value"], 3>> : never;
|
|
1244
1247
|
/**
|
|
1245
1248
|
* Binary prefix denoting an order of magnitude of 10^1.
|
|
1246
1249
|
*
|
|
@@ -1355,7 +1358,7 @@ export type Pico<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
|
|
|
1355
1358
|
* @group Modifiers
|
|
1356
1359
|
* @category General
|
|
1357
1360
|
*/
|
|
1358
|
-
export type Reciprocal<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Inverse<T> : T extends UnknownUnitClass ? UnitClass<InverseUnitSubvalues<T["
|
|
1361
|
+
export type Reciprocal<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Inverse<T> : T extends UnknownUnitClass ? UnitClass<InverseUnitSubvalues<T["__uom_types"]["value"]>> : T extends UnknownUnitMeta ? UnitMeta<InverseUnitSubvalues<T["__uom_types"]["value"]>> : never;
|
|
1359
1362
|
/**
|
|
1360
1363
|
* @group Unit Classes
|
|
1361
1364
|
* @category Electromagnetic
|
|
@@ -4268,43 +4271,38 @@ export declare function modSafe<T extends number>(a: OperationIO<T>, b: Operatio
|
|
|
4268
4271
|
* @returns A function that takes a integer and returns an integer between zero (inclusive) and `b` (exclusive).
|
|
4269
4272
|
*/
|
|
4270
4273
|
export declare function modSafe<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
|
|
4271
|
-
export type
|
|
4274
|
+
export type PowResult<B extends number, E extends number> = E extends Unitless ? PowResult<B, number> : E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends Exponent ? Pow<B, E> : E extends 0.5 ? Root<B, 2> : B extends Unitless ? B : number;
|
|
4275
|
+
export type PowFunction<B extends number, E extends number> = (b: B) => PowResult<B, E>;
|
|
4276
|
+
export type RootResult<B extends number, E extends number> = E extends Unitless ? RootResult<B, number> : E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends Exponent ? Root<B, E> : E extends 0.5 ? Pow<B, 2> : B extends Unitless ? B : number;
|
|
4277
|
+
export type RootFunction<B extends number, E extends number> = (b: B) => RootResult<B, E>;
|
|
4272
4278
|
/**
|
|
4273
4279
|
* Raise a number to the power of another.
|
|
4274
4280
|
*
|
|
4275
4281
|
* @category Math
|
|
4276
4282
|
* @returns `base ** exponent`
|
|
4277
4283
|
*/
|
|
4278
|
-
export declare function pow<B extends number, E extends number>(base: B, exponent: E
|
|
4279
|
-
/**
|
|
4280
|
-
* Put a number to the power of 1/2.
|
|
4281
|
-
*
|
|
4282
|
-
* @category Math
|
|
4283
|
-
* @returns `base ** 0.5`
|
|
4284
|
-
*/
|
|
4285
|
-
export declare function pow<B extends number>(base: B, exponent: 0.5): Root<B, 2>;
|
|
4284
|
+
export declare function pow<B extends number, E extends number>(base: B, exponent: E): PowResult<B, E>;
|
|
4286
4285
|
/**
|
|
4287
4286
|
* Put a number to the power of the given value.
|
|
4288
4287
|
*
|
|
4289
4288
|
* @category Math
|
|
4290
4289
|
* @returns `(base) => base ** exponent`
|
|
4291
4290
|
*/
|
|
4292
|
-
export declare function pow<E extends number>(exponent: E): <B extends number>(base: Parameters<PowFunction<
|
|
4293
|
-
export type RootFunction<E extends number, B extends number> = E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends PosExponent ? (b: B) => Root<B, E> : (b: B) => number;
|
|
4291
|
+
export declare function pow<E extends number>(exponent: E): <B extends number>(base: Parameters<PowFunction<B, E>>[0]) => ReturnType<PowFunction<B, E>>;
|
|
4294
4292
|
/**
|
|
4295
4293
|
* Take the nth root of a number.
|
|
4296
4294
|
*
|
|
4297
4295
|
* @category Math
|
|
4298
4296
|
* @returns `base ** (1 / exponent)`
|
|
4299
4297
|
*/
|
|
4300
|
-
export declare function root<B extends number, E extends number>(base: B, exponent: E
|
|
4298
|
+
export declare function root<B extends number, E extends number>(base: B, exponent: E): RootResult<B, E>;
|
|
4301
4299
|
/**
|
|
4302
4300
|
* Take the nth root of a number.
|
|
4303
4301
|
*
|
|
4304
4302
|
* @category Math
|
|
4305
4303
|
* @returns `(base) => base ** (1 / exponent)`
|
|
4306
4304
|
*/
|
|
4307
|
-
export declare function root<E extends number>(exponent: E): <B extends number>(base: Parameters<RootFunction<
|
|
4305
|
+
export declare function root<E extends number>(exponent: E): <B extends number>(base: Parameters<RootFunction<B, E>>[0]) => ReturnType<RootFunction<B, E>>;
|
|
4308
4306
|
/**
|
|
4309
4307
|
* Take the square root of the given value.
|
|
4310
4308
|
*
|