TypeScript Pick и Record

Определение типов:

type Pick<T, K extends keyof T> = {
    [P in K]: T[P];
}
type Record<K extends string, T> = {
    [P in K]: T;
}

Pick

interface Dog {
  id?: number;
  name: string;
  weight: number;
  age: number;
}

type Doggy = Pick<Dog, 'id' | 'name' >;

// эквивалентно
type Doggy = {
  id?: number;
  name: string;
}

Record

type ThreeDogProps = Record<'prop1' | 'prop2' | 'prop3', Dog>;

// эквивалентно
type ThreeDogProps = {
  prop1: Dog;
  prop2: Dog;
  prop3: Dog;
}

Похожие записи

Axios или fetch

Сравнение на примере GET/POST запросов, обработке ошибок и возможности задавать базовую конфигурацию.

+function ($) { "use strict"; }(window.jQuery);

  • объявляется IIFE (немедленно выполняемая функция-выражение)
  • в функцию передаётся объект библиотеки jQuery, которая внутри будет доступна через переменную с именем $
  • включается «строгий режим»

RxJS. Delay from array

import { of, from } from 'rxjs'; 
import { map, concatMap, delay } from 'rxjs/operators';

from([2,4,6,8]).pipe(
  concatMap(item => of(item).pipe(delay(1000)))
).subscribe(console.log);