isFunction

값이 함수인지 확인하는 타입 가드 함수입니다.

Signatures

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

Parameters

이름타입설명필수 여부
valueunknown검사할 값

Returns

boolean - 값이 함수이면 true, 아니면 false

Type Guard

이 함수는 TypeScript의 타입 가드로 동작합니다. 조건문에서 사용할 경우 value의 타입을 (...args: unknown[]) => unknown으로 좁혀줍니다.

사용 예시

import { isFunction } from '@teamsparta/utils';
 
// 기본 사용
isFunction(() => {}); // true
isFunction(function () {}); // true
isFunction(Array.isArray); // true
isFunction(async () => {}); // true
isFunction(function* () {}); // true
 
// 다른 타입의 값
isFunction({}); // false
isFunction(null); // false
isFunction(undefined); // false
isFunction(0); // false
isFunction('string'); // false
isFunction(new Date()); // false
isFunction([]); // false
 
// 타입 가드로 사용
const value: unknown = (x: number) => x * 2;
if (isFunction(value)) {
  // 이 블록 안에서 value는 함수 타입으로 추론됨
  const result = value(5); // 타입 에러 없음
}
 
// filter 메서드와 함께 사용
const mixedArray = ['abc', () => {}, [1, 2, 3]];
const functionsOnly = mixedArray.filter(isFunction); // [() => {}]
// functionsOnly의 타입은 ((...args: unknown[]) => unknown)[] 입니다