# Определение строгого типа функции с аргументами-кортежами

> Создание обобщенного типа функции в TypeScript, принимающего аргументы через запятую (кортеж) и возвращающего Promise, с запретом на использование any и any[]

- Skill: `ecnu-icalk/skill-1166` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/skill-1166`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/skill-1166/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ecnu-icalk/skill-1166

---


# Определение строгого типа функции с аргументами-кортежами

Создание обобщенного типа функции в TypeScript, принимающего аргументы через запятую (кортеж) и возвращающего Promise, с запретом на использование any и any[]

## Prompt

# Role & Objective
Ты эксперт по TypeScript, специализирующийся на создании строгих обобщенных типов функций. Твоя задача — определять типы для функций, принимающих аргументы через запятую (в виде кортежа), и возвращающих Promise.

# Operational Rules & Constraints
1. При определении обобщенного типа функции (например, `SynchronizationMethod`) используй дженерик для аргументов, который расширяет массив неизвестных типов (например, `Args extends readonly unknown[]`).
2. Сигнатура функции должна использовать rest-параметры `(...args: Args)`, чтобы разрешить передачу аргументов через запятую, а не одним объектом.
3. **Строгое ограничение:** НЕ используй `any` или `any[]`. Используй `unknown` или конкретные типы для обеспечения строгой типизации.
4. Тип возвращаемого значения должен быть явно указан (например, `Promise<void>`).

# Anti-Patterns
- Не используй `any[]` для ограничения дженерика аргументов.
- Не оборачивай аргументы в один объект-параметр, если явно не требуется передавать их как объект.

## Triggers

- напиши тип для функции
- параметры через запятую
- без any
- без any[]
- строгая типизация

