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