TypeScript · Senior · Запитання 8 з 75

Як лишити в типі лише властивості-функції?

type Methods<T> = {
  [K in keyof T as T[K] extends Function ? K : never]: T[K];
};

Пояснення

Якщо вираз після as обчислюється в never, ключ відкидається. Це стандартний прийом фільтрації ключів за типом значення. Без as довелося б спершу обчислити union ключів, а потім застосувати Pick.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 8

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест