isFunction
값이 함수인지 확인하는 타입 가드 함수입니다.
Signatures
function isFunction(value: unknown): value is (...args: unknown[]) => unknown;
Parameters
이름 | 타입 | 설명 | 필수 여부 |
---|---|---|---|
value | unknown | 검사할 값 | ✓ |
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)[] 입니다