2222
2323/// <reference types="@stdlib/types"/>
2424
25- import { ArrayLike , ComplexTypedArray , ComplexFloatingPointDataType as DataType } from '@stdlib/types/array' ;
25+ import { ArrayLike , ComplexTypedArray , ComplexFloatingPointDataTypeMap as DataTypeMap } 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 = complexarray( 'complex64');
4040* // returns <Complex64Array>
4141*/
42- declare function complexarray ( dtype ?: DataType ) : ComplexTypedArray ;
42+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( dtype ?: T ) : DataTypeMap [ T ] ;
4343
4444/**
4545* Creates a complex number typed array.
@@ -56,7 +56,7 @@ declare function complexarray( dtype?: DataType ): ComplexTypedArray;
5656* var arr = complexarray( 2, 'complex64' );
5757* // returns <Complex64Array>
5858*/
59- declare function complexarray ( length : number , dtype ?: DataType ) : ComplexTypedArray ;
59+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( length : number , dtype ?: T ) : DataTypeMap [ T ] ;
6060
6161/**
6262* Creates a complex number typed array.
@@ -73,7 +73,7 @@ declare function complexarray( length: number, dtype?: DataType ): ComplexTypedA
7373* var arr = complexarray( new Complex128Array( 2 ), 'complex64' );
7474* // returns <Complex64Array>
7575*/
76- declare function complexarray ( complexarray : ComplexTypedArray , dtype ?: DataType ) : ComplexTypedArray ;
76+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( complexarray : ComplexTypedArray , dtype ?: T ) : DataTypeMap [ T ] ;
7777
7878/**
7979* Creates a complex number typed array.
@@ -91,7 +91,7 @@ declare function complexarray( complexarray: ComplexTypedArray, dtype?: DataType
9191* var arr = complexarray( [ 5, -3 ], 'complex64' );
9292* // returns <Complex64Array>
9393*/
94- declare function complexarray ( obj : ArrayLike < number > | Iterable < any > , dtype ?: DataType ) : ComplexTypedArray ;
94+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( obj : ArrayLike < number > | Iterable < any > , dtype ?: T ) : DataTypeMap [ T ] ;
9595
9696/**
9797* Creates a complex number typed array.
@@ -114,7 +114,7 @@ declare function complexarray( obj: ArrayLike<number> | Iterable<any>, dtype?: D
114114* var arr = complexarray( buf, 'complex64' );
115115* // returns <Complex64Array>
116116*/
117- declare function complexarray ( buffer : ArrayBuffer , dtype ?: DataType ) : ComplexTypedArray ;
117+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( buffer : ArrayBuffer , dtype ?: T ) : DataTypeMap [ T ] ;
118118
119119/**
120120* Creates a complex number typed array.
@@ -138,7 +138,7 @@ declare function complexarray( buffer: ArrayBuffer, dtype?: DataType ): ComplexT
138138* var arr = complexarray( buf, 16, 'complex64' );
139139* // returns <Complex64Array>
140140*/
141- declare function complexarray ( buffer : ArrayBuffer , byteOffset ?: number , dtype ?: DataType ) : ComplexTypedArray ;
141+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( buffer : ArrayBuffer , byteOffset ?: number , dtype ?: T ) : DataTypeMap [ T ] ;
142142
143143/**
144144* Creates a complex number typed array.
@@ -163,7 +163,7 @@ declare function complexarray( buffer: ArrayBuffer, byteOffset?: number, dtype?:
163163* var arr = complexarray( buf, 16, 2, 'complex64' );
164164* // returns <Complex64Array>
165165*/
166- declare function complexarray ( buffer : ArrayBuffer , byteOffset ?: number , length ?: number , dtype ?: DataType ) : ComplexTypedArray ;
166+ declare function complexarray < T extends keyof DataTypeMap = 'complex128' > ( buffer : ArrayBuffer , byteOffset ?: number , length ?: number , dtype ?: T ) : DataTypeMap [ T ] ;
167167
168168
169169// EXPORTS //
0 commit comments