1. JavaScript / Говнокод #28883

    0

    1. 1
    export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;

    Адская супер-хуйня отсюда https://github.com/deneruaraujo/daily-diet-api
    Я не понял что она делает, даже небо, даже Аллах

    Запостил: sex_mashina, 23 Ноября 2023

    Комментарии (3) RSS

    • Partial делает все ключи объекта T опциональными.
      Pick создает объект с ключами K.
      Omit удаляет K ключи из объекта.

      Допустим
      type A = { a: number; b: number; c: number };
      type B = Optional<A, 'b' | 'c'>;
      
      // В Итоге B будет
      type B = { a: number; b?: number; c?: number }';


      Если по этапней объяснять.

      type A = { a: number; b: number; c: number};

      Partial<T> = { a?: number; b?: number; c?: number };

      Pick<Partial<T>, K> = { b?: number; c?: number ;};

      Omit<T,K> = { a: number };
      Optinonal<T, K extends keyof T> = { b?:number; c?: number} & { a: number; } = { a: number; b?: number; c?: number; };

      Все изи брат)










      Ответить
    • Тайпскрипт?
      Ответить

    Добавить комментарий