type Stringify < T > = { [ K in keyof T ] : string ; } ; function stringifyProps < T > ( v ) { const result = { } as Stringify < T > ; for ( const prop in v ) { result [ prop ] = String ( v [ prop ] ) ; } return result ; } { const obj = stringifyProps ( { no : 151 } ) ; console . log ( obj ) ; } function stringifyAll < T extends unknown [ ] > ( ... args ) { return args . map ( v => String ( v ) ) as any ; } { const array = stringifyAll ( [ 1 , true ] ) ; array . forEach ( v => console . log ( v ) ) ; const len = array . length ; console . log ( array , len ) ; } { const tuple = [ 1 , true ] ; const array = stringifyAll ( tuple ) ; array . forEach ( v => console . log ( v ) ) ; const len = array . length ; console . log ( tuple , array , len ) ; }