1. Generate a Random Number
function getRandomNumber ( max : number ): number {
return Math . floor ( Math . random () * max );
}
Enter fullscreen mode
Exit fullscreen mode
2. Check If an Object Is Empty
function isEmptyObject ( obj : Record < string , unknown > ): boolean {
return Object . keys ( obj ). length === 0 ;
}
Enter fullscreen mode
Exit fullscreen mode
3. Create a Countdown Timer
function countdownTimer ( minutes : number ): void {
let seconds = minutes * 60 ;
const interval = setInterval (() => {
console . log ( ` ${ Math . floor ( seconds / 60 )} : ${ seconds % 60 } ` );
if ( -- seconds < 0 ) clearInterval ( interval );
}, 1000 );
}
Enter fullscreen mode
Exit fullscreen mode
4. Sort Array of Objects by Property
function sortByProperty < T > ( arr : T [], prop : keyof T ): T [] {
return arr . sort (( a , b ) => ( a [ prop ] > b [ prop ] ? 1 : - 1 ));
}
Enter fullscreen mode
Exit fullscreen mode
5. Remove Duplicates from an Array
function removeDuplicates < T > ( arr : T []): T [] {
return [... new Set ( arr )];
}
Enter fullscreen mode
Exit fullscreen mode
6. Truncate a String
function truncateString ( str : string , length : number ): string {
return str . length > length ? ` ${ str . slice ( 0 , length )} ...` : str ;
}
Enter fullscreen mode
Exit fullscreen mode
7. Convert String to Title Case
function toTitleCase ( str : string ): string {
return str . replace ( / \b\w /g , char => char . toUpperCase ());
}
Enter fullscreen mode
Exit fullscreen mode
8. Check if Value Exists in Array
function valueExists < T > ( arr : T [], value : T ): boolean {
return arr . includes ( value );
}
Enter fullscreen mode
Exit fullscreen mode
9. Reverse a String
function reverseString ( str : string ): string {
return str . split ( '' ). reverse (). join ( '' );
}
Enter fullscreen mode
Exit fullscreen mode
10. Increment Numbers in an Array
function incrementArray ( arr : number []): number [] {
return arr . map ( num => num + 1 );
}
Enter fullscreen mode
Exit fullscreen mode
11. Debounce a Function
function debounce < F extends (... args : any []) => void > ( func : F , delay : number ): F {
let timeout : ReturnType < typeof setTimeout > ;
return function ( this : any , ... args : any []) {
clearTimeout ( timeout );
timeout = setTimeout (() => func . apply ( this , args ), delay );
} as F ;
}
Enter fullscreen mode
Exit fullscreen mode
12. Throttle a Function
function throttle < F extends (... args : any []) => void > ( func : F , limit : number ): F {
let lastRun = 0 ;
return function ( this : any , ... args : any []) {
const now = Date . now ();
if ( now - lastRun >= limit ) {
func . apply ( this , args );
lastRun = now ;
}
} as F ;
}
Enter fullscreen mode
Exit fullscreen mode
13. Clone an Object
function cloneObject < T > ( obj : T ): T {
return { ... obj };
}
Enter fullscreen mode
Exit fullscreen mode
14. Merge Two Objects
function mergeObjects < T , U > ( obj1 : T , obj2 : U ): T & U {
return { ... obj1 , ... obj2 };
}
Enter fullscreen mode
Exit fullscreen mode
15. Check for Palindrome String
function isPalindrome ( str : string ): boolean {
const cleaned = str . replace ( / [^ a-zA-Z0-9 ] /g , '' ). toLowerCase ();
return cleaned === cleaned . split ( '' ). reverse (). join ( '' );
}
Enter fullscreen mode
Exit fullscreen mode
16. Count Occurrences in an Array
function countOccurrences < T > ( arr : T []): Record < string , number > {
return arr . reduce (( acc , val ) => {
const key = String ( val );
acc [ key ] = ( acc [ key ] || 0 ) + 1 ;
return acc ;
}, {} as Record < string , number > );
}
Enter fullscreen mode
Exit fullscreen mode
17. Get Day of the Year
function getDayOfYear ( date : Date ): number {
const start = new Date ( date . getFullYear (), 0 , 0 );
const diff = date . getTime () - start . getTime ();
return Math . floor ( diff / ( 1000 * 60 * 60 * 24 ));
}
Enter fullscreen mode
Exit fullscreen mode
18. Filter Unique Values from Array
function getUniqueValues < T > ( arr : T []): T [] {
return [... new Set ( arr )];
}
Enter fullscreen mode
Exit fullscreen mode
19. Convert Degrees to Radians
function degreesToRadians ( degrees : number ): number {
return ( degrees * Math . PI ) / 180 ;
}
Enter fullscreen mode
Exit fullscreen mode
20. Delay Function Execution
function defer ( fn : (... args : any []) => void , ... args : any []): void {
setTimeout (() => fn (... args ), 1 );
}
Enter fullscreen mode
Exit fullscreen mode
21. Capitalize First Letter
function capitalizeFirstLetter ( str : string ): string {
return str . charAt ( 0 ). toUpperCase () + str . slice ( 1 );
}
Enter fullscreen mode
Exit fullscreen mode
22. Convert Array to Chunked Groups
function chunkArray < T > ( arr : T [], size : number ): T [][] {
return Array . from ({ length : Math . ceil ( arr . length / size ) }, ( _ , i ) =>
arr . slice ( i * size , i * size + size )
);
}
Enter fullscreen mode
Exit fullscreen mode
23. Flatten Nested Arrays
function flattenArray < T > ( arr : any []): T [] {
return arr . flat ( Infinity ) as T [];
}
Enter fullscreen mode
Exit fullscreen mode
24. Get Random Element from Array
function randomElement < T > ( arr : T []): T {
return arr [ Math . floor ( Math . random () * arr . length )];
}
Enter fullscreen mode
Exit fullscreen mode
25. Shuffle an Array
function shuffleArray < T > ( arr : T []): T [] {
return arr . sort (() => Math . random () - 0.5 );
}
Enter fullscreen mode
Exit fullscreen mode
26. Find Max in Array
function arrayMax ( arr : number []): number {
return Math . max (... arr );
}
Enter fullscreen mode
Exit fullscreen mode
27. Find Min in Array
function arrayMin ( arr : number []): number {
return Math . min (... arr );
}
Enter fullscreen mode
Exit fullscreen mode
28. Remove Null and Undefined
function removeEmpty < T > ( arr : ( T | null | undefined )[]): T [] {
return arr . filter (( x ): x is T => x != null );
}
Enter fullscreen mode
Exit fullscreen mode
29. Format Date as YYYY-MM-DD
function formatDate ( date : Date ): string {
return date . toISOString (). split ( ' T ' )[ 0 ];
}
Enter fullscreen mode
Exit fullscreen mode
30. Round to N Decimal Places
function roundTo ( num : number , decimals : number ): number {
return parseFloat ( num . toFixed ( decimals ));
}
Enter fullscreen mode
Exit fullscreen mode
31. Generate Random UUID
function generateUUID (): string {
return ' xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx ' . replace ( / [ xy ] /g , c => {
const r = ( Math . random () * 16 ) | 0 ;
const v = c === ' x ' ? r : ( r & 0x3 ) | 0x8 ;
return v . toString ( 16 );
});
}
Enter fullscreen mode
Exit fullscreen mode
32. Check if Number is Even
function isEven ( num : number ): boolean {
return num % 2 === 0 ;
}
Enter fullscreen mode
Exit fullscreen mode
33. Check if Number is Odd
function isOdd ( num : number ): boolean {
return num % 2 !== 0 ;
}
Enter fullscreen mode
Exit fullscreen mode
34. Sleep / Delay
function sleep ( ms : number ): Promise < void > {
return new Promise ( resolve => setTimeout ( resolve , ms ));
}
Enter fullscreen mode
Exit fullscreen mode
35. Retry a Function
async function retry < T > ( fn : () => Promise < T > , retries : number ): Promise < T > {
let lastError : any ;
for ( let i = 0 ; i < retries ; i ++ ) {
try {
return await fn ();
} catch ( err ) {
lastError = err ;
}
}
throw lastError ;
}
Enter fullscreen mode
Exit fullscreen mode
36. Get Query Parameters from URL
function getQueryParams ( url : string ): Record < string , string > {
return Object . fromEntries ( new URL ( url ). searchParams . entries ());
}
Enter fullscreen mode
Exit fullscreen mode
37. Generate Random Boolean
function randomBoolean (): boolean {
return Math . random () >= 0.5 ;
}
Enter fullscreen mode
Exit fullscreen mode
38. Convert Object to Query String
function toQueryString ( params : Record < string , any > ): string {
return new URLSearchParams ( params ). toString ();
}
Enter fullscreen mode
Exit fullscreen mode
39. Deep Clone Object
function deepClone < T > ( obj : T ): T {
return JSON . parse ( JSON . stringify ( obj ));
}
Enter fullscreen mode
Exit fullscreen mode
40. Remove Falsey Values from Array
function compact < T > ( arr : T []): T [] {
return arr . filter ( Boolean );
}
Enter fullscreen mode
Exit fullscreen mode
41. Check if String is JSON
function isJSON ( str : string ): boolean {
try {
JSON . parse ( str );
return true ;
} catch {
return false ;
}
}
Enter fullscreen mode
Exit fullscreen mode
42. Generate Random Hex Color
function randomHexColor (): string {
return `# ${ Math . floor ( Math . random () * 16777215 ). toString ( 16 )} ` ;
}
Enter fullscreen mode
Exit fullscreen mode
43. Convert Bytes to Human Readable
function formatBytes ( bytes : number ): string {
if ( bytes === 0 ) return ' 0 Bytes ' ;
const sizes = [ ' Bytes ' , ' KB ' , ' MB ' , ' GB ' , ' TB ' ];
const i = Math . floor ( Math . log ( bytes ) / Math . log ( 1024 ));
return ` ${( bytes / Math . pow ( 1024 , i )). toFixed ( 2 )} ${ sizes [ i ]} ` ;
}
Enter fullscreen mode
Exit fullscreen mode
44. Check if String Contains Substring
function contains ( str : string , substr : string ): boolean {
return str . includes ( substr );
}
Enter fullscreen mode
Exit fullscreen mode
45. Pluck Property Values from Array
function pluck < T , K extends keyof T > ( arr : T [], key : K ): T [ K ][] {
return arr . map ( item => item [ key ]);
}
Enter fullscreen mode
Exit fullscreen mode
46. Intersection of Two Arrays
function intersect < T > ( a : T [], b : T []): T [] {
return a . filter ( value => b . includes ( value ));
}
Enter fullscreen mode
Exit fullscreen mode
47. Difference of Two Arrays
function difference < T > ( a : T [], b : T []): T [] {
return a . filter ( value => ! b . includes ( value ));
}
Enter fullscreen mode
Exit fullscreen mode
48. Zip Two Arrays
function zip < T , U > ( a : T [], b : U []): [ T , U ][] {
return a . map (( val , i ) => [ val , b [ i ]]);
}
Enter fullscreen mode
Exit fullscreen mode
49. Unzip Array
function unzip < T , U > ( arr : [ T , U ][]): [ T [], U []] {
return arr . reduce (([ a , b ], [ x , y ]) => [[... a , x ], [... b , y ]], [[], []] as [ T [], U []]);
}
Enter fullscreen mode
Exit fullscreen mode
50. Unique by Property
function uniqueBy < T > ( arr : T [], key : keyof T ): T [] {
const seen = new Set ();
return arr . filter ( item => {
const val = item [ key ];
if ( seen . has ( val )) return false ;
seen . add ( val );
return true ;
});
}
Enter fullscreen mode
Exit fullscreen mode
Top comments (1)
A go-to collection like this encourages best practices and efficiency in TypeScript programming, making it easier for frontend teams to implement robust, maintainable codebases essential for scalable UI/UX experiences.