DEV Community

Parth Raval
Parth Raval

Posted on

๐Ÿš€ 20 Most Useful TypeScript Snippets

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. โž• Create a New Array from Another

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

Top comments (0)