面试题答案
一键面试type StringHandler = (str: string) => void;
type NumberHandler = (num: number) => void;
type ArrayHandler<T> = (arr: T[]) => void;
type DataProcessor<T> =
T extends string ? StringHandler :
T extends number ? NumberHandler :
T extends Array<infer U> ? ArrayHandler<U> :
never;
// 示例使用
let strProcessor: DataProcessor<string>;
let numProcessor: DataProcessor<number>;
let arrProcessor: DataProcessor<{ value: string }[]>;