👋 Привет, друг!
В этом канале я выкладываю структурированные, обучающие уроки и материалы по вёрстке сайтов и фронтенду.
Присоединяйся и начинай учиться!
Связь: @Tigran1963
Post #2820
623
ВЁ @free_html_lessons
Showing posts older than #2821 · Back to latest






return a + b;
}
export const callingArguments = [
[1,2],
[1,2]
];
Result: 3
Invoked: true
memoizedFn(1, 2)
Result: 3
Invoked: false


enum Status { Active, Inactive }. Долгое время это считалось хорошим тоном, но сегодня использование Enums это скорее антипаттерн, от которого индустрия постепенно отказывается.enum. Посмотрим, во что превращается обычный enum после компиляции:
// TypeScript
enum Role {
Admin,
User
}
// JavaScript (после компиляции)
var Role;
(function (Role) {
Role[Role["Admin"] = 0] = "Admin";
Role[Role["User"] = 1] = "User";
})(Role || (Role = {}));
0, а Role[0] равен `"Admin"`). В коммерческих проектах на сотни тысяч строк кода это раздувает бандл буквально на ровном месте.
enum Status {
Pending,
Success
}
function setStatus(status: Status) { ... }
// Ошибки нет, хотя статуса 99 не существует!
setStatus(99);
as const
// 1. Создаем чистый объект с флагом "только для чтения"
const PROJECT_STATUS = {
PENDING: 'pending',
SUCCESS: 'success',
FAILED: 'failed',
} as const;
// 2. Генерируем тип из значений этого объекта
type ProjectStatus = typeof PROJECT_STATUS[keyof typeof PROJECT_STATUS];
// Тип равен: 'pending' | 'success' | 'failed'
// 3. Используем в коде
function updateStatus(status: ProjectStatus) { ... }
updateStatus(PROJECT_STATUS.SUCCESS); // Идеально
updateStatus('unknown'); // Ошибка компиляции
PROJECT_STATUS. Никаких странных функций.

["one.two.three","four.five","six"]
"."
Вывод
["one","two","three","four","five","six"]
