# Safe Casts > Return a list of array [data types][@stdlib/array/dtypes] to which a provided array [data type][@stdlib/array/dtypes] can be safely cast.
## Usage ```javascript var safeCasts = require( '@stdlib/array/safe-casts' ); ``` #### safeCasts( \[dtype] ) If provided a `dtype` argument, returns a list of array [data types][@stdlib/array/dtypes] to which a provided array [data type][@stdlib/array/dtypes] can be safely cast. ```javascript var out = safeCasts( 'float32' ); // e.g., returns [ 'float32', 'float64', 'generic' ] ``` If not provided a `dtype` argument, the function returns a casting table. ```javascript var out = safeCasts(); // returns {...} var f32 = out[ 'float32' ]; // returns {...} var v = f32[ 'float64' ]; // returns 1 ``` If provided an unrecognized or unsupported `dtype`, the function returns `null`. ```javascript var out = safeCasts( 'foo' ); // returns null ```
## Examples ```javascript var dtypes = require( '@stdlib/array/dtypes' ); var safeCasts = require( '@stdlib/array/safe-casts' ); var DTYPES; var list; var i; // Get the list of supported array data types: DTYPES = dtypes(); // Print the list of array data types to which a data type can be safely cast... for ( i = 0; i < DTYPES.length; i++ ) { list = safeCasts( DTYPES[ i ] ); console.log( '%s: %s', DTYPES[ i ], list.join( ', ' ) ); } ```