xycu2.rar
49 subscribers
107 photos
7 videos
14 links
Download Telegram
Добавил создание ветки БЕЗ перехода

Вдобавок к прошлой функции сделал метку для случая, когда ветку нужно просто создать в фоне, оставаясь в текущей (git branch).

Что нового в :create_branch_only:
• Вывод подсказки с нужной командой для перехода на будущее.

Код функции:
:: Создание ветки (остаемся в текущей)
:create_branch_only
cls
echo === СОЗДАНИЕ ВЕТКИ (ОСТАЕМСЯ В ТЕКУЩЕЙ) ===

echo.
echo Вы хотите создать ветку и остаться в текущей? (Y/N)

choice /c YN /n /m "Ваш выбор: "

if errorLevel 2 goto menu

set branch_name=
set /p branch_name="Введите название новой ветки: "

if "%branch_name%"=="" (
echo [!] Название ветки не может быть пустым!
pause
goto menu
)

git branch "%branch_name%"

echo.
echo [!] Ветка "%branch_name%" успешно создана! Вы остались в текущей ветке.
echo Чтобы перейти на нее выполните: git switch "%branch_name%"
pause
goto menu


Теперь в скрипте закрыты оба базовых сценария работы с ветками 💻
🔥 Сегодня разобрал крутую фичу в TypeScript оператор satisfies (появился в TS 4.9).

Раньше была частая проблема: если задаёшь объекту строгий тип (например, Record), то TypeScript забывает, где у тебя строка, а где массив. Из-за этого нельзя было просто так вызвать .toUpperCase() у строки без лишних проверок.

Оператор satisfies решает это идеально:
1. Он ПРОВЕРЯЕТ, что объект соответствует типу.
2. Но НЕ СУЖАЕТ автовыведенные типы полей!

type Colors = "red" | "green" | "blue"
type RGB = [red: number, green: number, blue: number]

const palette = {
red: [255, 0, 0],
green: "#00ff00",
blue: [0, 0, 255],
} satisfies Record<Colors, string | RGB>

const greenNormalized = palette.green.toUpperCase()


Теперь TS точно знает, что palette.green это именно string, и спокойно даёт крутить с ним любые строковые методы.

Код и примеры закинул в конспекты, двигаемся дальше 🚀