MST

星途 面试题库

面试题:TypeScript中boolean类型与泛型结合使用

定义一个泛型函数,该函数接收两个参数,第一个参数是一个值,第二个参数是一个布尔值。如果布尔值为true,则返回第一个参数的类型,如果为false,则返回其反类型(例如传入字符串类型返回非字符串类型的联合类型,这里简单用`never`代表非此类型)。请使用TypeScript的类型系统来实现这个逻辑。
27.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type ReverseType<T> = T extends string ? never : T extends number ? never : T extends boolean ? never : never;

function getType<T>(value: T, flag: boolean): flag extends true ? T : ReverseType<T> {
    if (flag) {
        return value;
    } else {
        return undefined as any;
    }
}