Типы
any и unknown часто путают, но они работают совершенно по-разному!any — «отключает» TypeScript
let value1: any = "hello";
value1.toUpperCase(); // TS не проверяет
value1.someMethod(); // TS разрешает всё
value1.foo.bar.baz; // Никаких проверок
unknown — «безопасный any»
let value2: unknown = "hello";
value2.toUpperCase(); // Ошибка компиляции!
// Нужна проверка типа:
if (typeof value2 === 'string') {
value2.toUpperCase(); // Теперь работает
}
any — когда:
— Мигрируете JS → TS постепенно
— Работаете с legacy-кодом
— Но помните: это технический долг!
unknown — когда:
— Парсите JSON с бэкенда
— Работаете с пользовательским вводом
— Получаете данные из внешних API
— Обрабатываете ошибки в catch
// Плохо
function parseResponse(response: any) {
return response.data.user.name;
}
// Хорошо
function parseResponse(response: unknown) {
if (
response &&
typeof response === 'object' &&
'data' in response
) {
// Type guard для безопасной работы
return (response as {data: {user: {name: string}}}).data.user.name;
}
throw new Error('Invalid response');
}
unknown заставляет вас думать о безопасности типов, any — отключает эту защиту.#career_merge #ts #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥4🥰4👍1
«Для чего в JavaScript нужен BigInt?»
Большинство кандидатов отвечают слишком обобщённо — «для больших чисел». Такой ответ почти всегда считают неполным.
• ограничений типа Number
• потери точности в вычислениях
• того, когда JavaScript начинает молча врать
Выше — 5 карточек с разбором: в чём реальная проблема, что именно решает BigInt и как правильно отвечать на собеседовании
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2🥰2
В среднем операции вставки, поиска и удаления выполняются за O(1), но при коллизиях возможна деградация до O(n).
Коллизии решаются, например, через цепочки или открытую адресацию.
В JavaScript аналогами являются Object и Map, при этом Map лучше подходит для частых операций добавления и удаления.
#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4❤2👍2