ts 奇淫技巧

150 阅读1分钟
  • 01, 等待特定得时间量
    const wait = (ms: number) : Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));
    
    await wait(1000);
  • 02, 检查一个日期是否为工作日
    const isWeekday = (d: Date) : boolean => d.getDay() % 6 !== 0;
    
    isWeekday(new Date(2022, 06,20)); // true
    isWeekday(new Date(2022, 06, 25)); // false
  • 03, 反转字符串


     const reverse = (s: string): string => s.split('').reverse.join('');
     
     reverse('Pixar') // raxip

04, 检查一个数字是否为偶数

    const isEven = (n:number): boolean => n % 2 === 0;
    
    isEven(2) // true
    isEven(3) // false

05, 检查数组是否为空

    // 这里使用 unknown 类型,而不是 any,它提供了更安全的类型
    const isArrayEmpty = (arr:unknown[]): boolean => Array.isArray(arr) && !arr.length;
    isArrayEmpty([]) // true
    isArrayEmpty([1,2,3]) // false

06,检查对象、数组是否为空

    const isObjectEmpty = (obj: unknown):booean => obj && Object.keys(obj).length === 0;

      isObjectEmpty({}); // -> true
      isObjectEmpty({ foo: 'bar' }); // -> false

07, 随机生成整数 js const randomInterger = (min:number, max:number):number => math.floor(Math.random() * (max - min + 1)) + min; randomInteger(1, 10); // -> 7

08, 生成随数组组合

 
     const shuffleArray = <T>(arr: T[]): T[] => arr.sort(() => Math.random() - 0.5);
     shuffleArray(<number[]>[1, 2, 3, 4, 5]); // -> [ 4, 5, 2, 1, 3 ]