type Foo = {

Чтобы объявить тип FooKeysWithoutBD, который содержит ключи типа Foo, но без значений b и d, можно использовать утилиту TypeScript Exclude.

Короткий ответ

Что ответить на собеседовании

Чтобы объявить тип FooKeysWithoutBD, который содержит ключи типа Foo, но без значений b и d, можно использовать утилиту TypeScript Exclude.

Подробный разбор

Ответ с пояснениями

Условие

type Foo = { a: string; b: number; c: null; d: boolean; }

// FooKeys type FooKeys = keyof Foo

// Как объявить новый тип на основе FooKeys, но без значений b и d? type FooKeysWithoutBD

Ответ

Чтобы объявить тип FooKeysWithoutBD, который содержит ключи типа Foo, но без значений b и d, можно использовать утилиту TypeScript Exclude.

// Исходный тип
type Foo = {
  a: string;
  b: number;
  c: null;
  d: boolean;
}

// Все ключи Foo
type FooKeys = keyof Foo; // 'a' | 'b' | 'c' | 'd'

// Исключаем 'b' и 'd'
type FooKeysWithoutBD = Exclude<FooKeys, 'b' | 'd'>; // 'a' | 'c'

Exclude<T, U> создаёт новый тип, исключая из T все типы, которые совместимы с U. В этом случае из ключей Foo исключаются 'b' и 'd'.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее