import { Meta } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/vi/functional-basic/Functions/executeFunction - Thực thi hàm hoặc trả về giá trị'/>

# `executeFunction`

Một tiện ích linh hoạt được thiết kế để xử lý các đối số có thể là giá trị tĩnh hoặc hàm. Nếu đối số được cung cấp là một hàm, `executeFunction` sẽ gọi hàm đó với các đối số đã chỉ định và trả về kết quả. Nếu không, nó sẽ trả về chính đối số đó.

Mô hình này rất hiệu quả để triển khai tính toán lười biếng (lazy evaluation), các giá trị mặc định động hoặc các thuộc tính cấu hình có thể cố định hoặc được tính toán.

**Tham số:**
- `callback: T | ((...args: any[]) => T)` — Giá trị cần xử lý. Có thể là một giá trị cụ thể hoặc một hàm trả về kiểu `T`.
- `...args: any[]` (tùy chọn) — Các đối số được truyền vào hàm nếu `callback` có thể gọi được.

**Trả về:**
`T` — Kết quả của việc thực thi hàm hoặc chính giá trị ban đầu.

```typescript
import { executeFunction } from '@dxtmisha/functional-basic'

// 1. Xử lý giá trị tĩnh
console.log(executeFunction('Xin chào')) // 'Xin chào'

// 2. Thực thi động
const getLabel = (prefix: string) => `${prefix}: Nhãn động`
console.log(executeFunction(getLabel, 'Admin')) // 'Admin: Nhãn động'

// 3. Logic điều kiện trong cuộc gọi
const value = Math.random() > 0.5 ? 'Tĩnh' : () => 'Đã tính toán'
console.log(executeFunction(value)) // 'Tĩnh' hoặc 'Đã tính toán'
```
