CyrefJS
CCyrefJS
EN
بازگشت به مستندات
نوع/از نسخه 1.38.0

isFunction

بررسی می‌کند که آیا یک مقدار تابع است و به‌عنوان type guard در TypeScript امکان محدود کردن نوع به تابع را فراهم می‌کند.

isFunction(value):value is (...args: never[]) => unknown

نحوه پیاده‌سازی

این تابع از عملگر typeof در JavaScript استفاده می‌کند و بررسی می‌کند که نتیجه دقیقاً برابر با "function" باشد.

Type guard

نوع بازگشتی `value is (...args: never[]) => unknown` باعث می‌شود تابع یک TypeScript type guard باشد. در صورت موفق بودن بررسی، نوع مقدار به یک تابع قابل فراخوانی محدود می‌شود.

رفتار typeof

این بررسی از semantics مربوط به typeof در JavaScript پیروی می‌کند. بنابراین مقادیری مانند توابع معمولی، arrow functionها، توابع async و classها به‌عنوان function شناسایی می‌شوند.

پارامترها

valueunknownالزامی

مقداری که باید بررسی شود.

مقدار بازگشتی

value is (...args: never[]) => unknown

اگر مقدار تابع باشد true و در غیر این صورت false برمی‌گرداند. در صورت true بودن، TypeScript نوع مقدار را به یک نوع تابع قابل فراخوانی محدود می‌کند.

مثال‌ها

01

استفاده پایه

بررسی اینکه یک مقدار تابع است یا خیر.

TypeScript
isFunction(() => {});
// true

isFunction("hello");
// false
02

محدود کردن نوع

این type guard مقدار unknown را به یک نوع تابع قابل فراخوانی محدود می‌کند.

TypeScript
const value: unknown = () => "hello";

if (isFunction(value)) {
  value();
  // value is narrowed to (...args: never[]) => unknown
}
03

توابع نام‌گذاری‌شده

توابع معمولی نام‌گذاری‌شده به‌عنوان تابع شناسایی می‌شوند.

TypeScript
function greet() {
  return "Hello";
}

isFunction(greet);
// true
04

توابع async

توابع async نیز شناسایی می‌شوند، زیرا typeof برای آن‌ها مقدار "function" برمی‌گرداند.

TypeScript
async function loadData() {
  return "data";
}

isFunction(loadData);
// true
05

کلاس‌ها

کلاس‌های JavaScript نیز توسط typeof به‌عنوان function شناسایی می‌شوند.

TypeScript
class User {}

isFunction(User);
// true
06

مقادیر غیرتابعی

آبجکت‌ها، رشته‌ها، اعداد، null و undefined مقدار false برمی‌گردانند.

TypeScript
isFunction({});
// false

isFunction(42);
// false

isFunction(null);
// false

isFunction(undefined);
// false
ساخته شده با@cyref/js·مستندات رسمی