Рубрики
Без рубрики

Про Generics в Typescript

Сегодня работал с таким кодом. Решил разобрать что тут и как.

Это typings из .d.ts файла

export function useCode(
    exec: () => {

    }
)

Когда описываются параметры для некоторой функции, то параметр метод, то есть если там будет использована функция, обозначается следующим образом:

export function useCode(
    exec: () => 
        | Nullable<AnimatedNode<number>[]
)

Получается это будет параметр exec, который должен вернуть массив из AnimatedNode или null или undefined.

type Nullable = T | null | undefined;

Получается создается type дженерик. Он принимает в себя тип как параметр. Вообще, о дженериках стоит думать как о функциях которые принимают параметры, но вместо круглых скобок () используют вот такие <>. Это поможет легче понять новый синтаксис.

Конкретно в примере выше получается некий fail-safe вариант — вот нам пожалуйста generic и если что, он может быть null или undefined.

Для чего это можно использовать? Это весьма удобная конструкция если надо немного себя подстраховать.