2222
2323/// <reference types="@stdlib/types"/>
2424
25- import { ArrayLike , RealOrComplexTypedArray , NumericDataType } from '@stdlib/types/array' ;
25+ import { RealOrComplexTypedArray , TypedDataTypeMap } from '@stdlib/types/array' ;
2626import ArrayBuffer = require( '@stdlib/array-buffer' ) ;
2727
2828/**
@@ -39,7 +39,7 @@ import ArrayBuffer = require( '@stdlib/array-buffer' );
3939* var arr = typedarray( 'float32');
4040* // returns <Float32Array>
4141*/
42- declare function typedarray ( dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
42+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( dtype ?: T ) : TypedDataTypeMap [ T ] ;
4343
4444/**
4545* Creates a typed array.
@@ -56,7 +56,7 @@ declare function typedarray( dtype?: NumericDataType ): RealOrComplexTypedArray;
5656* var arr = typedarray( 2, 'float32' );
5757* // returns <Float32Array>[ 0.0, 0.0 ]
5858*/
59- declare function typedarray ( length : number , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
59+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( length : number , dtype ?: T ) : TypedDataTypeMap [ T ] ;
6060
6161/**
6262* Creates a typed array.
@@ -83,7 +83,7 @@ declare function typedarray( length: number, dtype?: NumericDataType ): RealOrCo
8383* var arr2 = typedarray( arr1, 'uint32' );
8484* // returns <Uint32Array>[ 5, 3 ]
8585*/
86- declare function typedarray ( typedarray : RealOrComplexTypedArray , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
86+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( typedarray : RealOrComplexTypedArray , dtype ?: T ) : TypedDataTypeMap [ T ] ;
8787
8888/**
8989* Creates a typed array.
@@ -100,7 +100,7 @@ declare function typedarray( typedarray: RealOrComplexTypedArray, dtype?: Numeri
100100* var arr = typedarray( [ 5, -3 ], 'int32' );
101101* // returns <Int32Array>[ 5, -3 ]
102102*/
103- declare function typedarray ( obj : ArrayLike < number > | Iterable < any > , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
103+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( obj : ArrayLike < number > | Iterable < any > , dtype ?: T ) : TypedDataTypeMap [ T ] ;
104104
105105/**
106106* Creates a typed array.
@@ -123,7 +123,7 @@ declare function typedarray( obj: ArrayLike<number> | Iterable<any>, dtype?: Num
123123* var arr = typedarray( buf, 'float32' );
124124* // returns <Float32Array>[ 0.0, 0.0, 0.0, 0.0 ]
125125*/
126- declare function typedarray ( buffer : ArrayBuffer , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
126+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( buffer : ArrayBuffer , dtype ?: T ) : TypedDataTypeMap [ T ] ;
127127
128128/**
129129* Creates a typed array.
@@ -147,7 +147,7 @@ declare function typedarray( buffer: ArrayBuffer, dtype?: NumericDataType ): Rea
147147* var arr = typedarray( buf, 8, 'float32' );
148148* // returns <Float32Array>[ 0.0, 0.0 ]
149149*/
150- declare function typedarray ( buffer : ArrayBuffer , byteOffset ?: number , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
150+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( buffer : ArrayBuffer , byteOffset ?: number , dtype ?: T ) : TypedDataTypeMap [ T ] ;
151151
152152/**
153153* Creates a typed array.
@@ -172,7 +172,7 @@ declare function typedarray( buffer: ArrayBuffer, byteOffset?: number, dtype?: N
172172* var arr = typedarray( buf, 8, 2, 'int32' );
173173* // returns <Int32Array>[ 0, 0 ]
174174*/
175- declare function typedarray ( buffer : ArrayBuffer , byteOffset ?: number , length ?: number , dtype ?: NumericDataType ) : RealOrComplexTypedArray ;
175+ declare function typedarray < T extends keyof TypedDataTypeMap = 'float64' > ( buffer : ArrayBuffer , byteOffset ?: number , length ?: number , dtype ?: T ) : TypedDataTypeMap [ T ] ;
176176
177177
178178// EXPORTS //
0 commit comments