TGViewer
Frontend Developer Frontend Developer @frontenddevelopernews · 182 subscribers
Post #88 244
💡 Давайте решим лёгкую задачку:
https://bigfrontend.dev/typescript/implement-Pick-T-K

По моим наблюдениям, многие фронтендеры не всегда до конца знают TypeScript.
Базовые вещи — да 😊, а вот если копнуть чуть глубже, то многие теряются!

---

📘 Условие задачи:

Реализуйте тип MyPick<T, K> самостоятельно.

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

type A = MyPick<Foo, 'a' | 'b'> // { a: string, b: number }
type B = MyPick<Foo, 'c'> // { c: boolean }
type C = MyPick<Foo, 'd'> // Ошибка


Использовать встроенный Pick<T, K> — нельзя 🚫

---

🧠 Чтобы решить задачу, нужно вспомнить две вещи:

1. оператор keyof - https://www.typescriptlang.org/docs/handbook/2/keyof-types.html
2. наследование с помощью extends

Тип MyPick принимает:

* первый аргумент — исходный тип T
* второй — K, который может быть только ключом из T

---

✅ Решение:

type MyPick<T, K extends keyof T> = {
[P in K]: T[P]
}


Так мы получаем новый тип, содержащий только нужные ключи и их типы 👌
bigfrontend.dev 5. implement Pick<T, K> | BFE.dev - prepare for Front-End job interviews. Pick<T, K>, as the name implies, returns a new type by picking properties in K from T. Please implement MyPick<T, K> by yourself. type Foo = { a: stri…
  • 🔥 4
  • ❤ 1
More from @frontenddevelopernews
  1. Jan 16, 2026🤣🤣🤣
  2. Jan 13, 2026Выпуск №509. Никита Дубко и Вадим Макеев про антивебные API для веба, как LLM и помогает,…
  3. Jan 13, 2026Всем привет! Сегодня прослушала подкаст «Веб-стандарты» #509 и узнала для себя несколько н…
  4. Dec 23, 2025🎄 Advent of JavaScript https://adventjs.dev/ Что это такое: * 24 дня — 24 задачи на JavaS…
  5. Dec 9, 2025💡 Идеальный программист Навыки, которые присущи идеальному разработчику! 😍 Спустя долгое…
  6. Dec 5, 2025Всем привет! Наткнулась в интернете на статью, где автор делится вопросами, которые ему за…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →