function validateUnsignedInteger( value, dtype ) {
	var vdt;
	if ( isNumber( value ) ) {
		vdt = minDataType( value ); // note: we rely on data type resolution to handle the case where `value` is a non-integer value. In that case, `vdt` will resolve to a floating-point data type and `isSafeCast` will evaluate to `false`
		if ( isSafeCast( vdt, dtype ) ) {
			return null;
		}
		return new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dtype ) );
	}
	if ( isComplexLike( value ) ) {
		return new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', complexDataType( value ), dtype ) );
	}
	return new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', typeof value, dtype ) );
}
Verifies whether a provided value can be safely assigned to an element in an array having an unsigned integer data type.

@private
@param {*} value - input value
@param {string} dtype - array data type
@returns {(Error|null)} error object or null

@example
var err = validateUnsignedInteger( 3, 'uint32' );
// returns null

@example
var err = validateUnsignedInteger( -3, 'uint32' );
// returns <TypeError>