Skip to content

Commit 2750093

Browse files
committed
type: fix vector math functions return type
1 parent 75c221c commit 2750093

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

src/index.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,30 +1236,46 @@ export class Layer {
12361236
/**
12371237
* Adds two vectors
12381238
*/
1239-
add(vec1: number | Vector, vec2: number | Vector): number | Vector {
1239+
add<VectorType extends Vector | Vector2D | Vector3D>(
1240+
vec1: VectorType,
1241+
vec2: VectorType
1242+
): VectorType {
12401243
return vec2;
12411244
}
12421245
/**
12431246
* Subtracts two vectors
12441247
*/
1245-
sub(vec1: number | Vector, vec2: number | Vector) {
1248+
sub<VectorType extends Vector | Vector2D | Vector3D>(
1249+
vec1: VectorType,
1250+
vec2: VectorType
1251+
) {
12461252
return vec1;
12471253
}
12481254
/**
12491255
* Multiplies a vector by a given scalar amount
12501256
* @param vec1 The vector to multiply
12511257
* @param amount The amount to multiply by
12521258
*/
1253-
mul(vec1: Vector, amount: number): Vector {
1254-
return vec1.map((el) => (el ?? 0) * amount) as Vector;
1259+
mul<VectorType extends Vector | Vector2D | Vector3D>(
1260+
vec1: VectorType,
1261+
amount: number
1262+
): VectorType {
1263+
return vec1.map(
1264+
(el: number | undefined) => (el ?? 0) * amount
1265+
) as VectorType;
12551266
}
12561267
/**
12571268
* Divides a vector by a given scalar amount
12581269
* @param vec1 The vector to divide
12591270
* @param amount The amount to divide by
12601271
*/
1261-
div(vec1: Vector, amount: number): Vector {
1262-
return vec1.map((el) => (el ?? 0) / amount) as Vector;
1272+
div<VectorType extends Vector | Vector2D | Vector3D>(
1273+
vec1: VectorType,
1274+
amount: number
1275+
): VectorType {
1276+
return vec1.map(
1277+
(el: number | undefined) => (el ?? 0) / amount
1278+
) as VectorType;
12631279
}
12641280
/**
12651281
* Constrains a given number, or each element of an array, to fall within a a given range

0 commit comments

Comments
 (0)