You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript条件类型是否支持AND运算符形式的逻辑判断?

TypeScript条件类型中的“AND”逻辑实现

TypeScript不支持在条件类型的extends子句中直接使用&&这类AND运算符,但你可以通过几种等价方式实现相同的逻辑与效果。

你提供的原始嵌套条件写法是完全有效的:

type TKeysofFunctionsStartingWithS<T, S extends string> = {
        [K in keyof T]: T[K] extends Function
            ? K extends `${S}${string}`
                ? K
                : never
            : never;
}[keyof T];

如果想让逻辑更紧凑,不用嵌套? :,可以用元组匹配的技巧实现“AND”判断,写法接近你想要的形式:

type TKeysofFunctionsStartingWithS<T, S extends string> = {
    [K in keyof T]: 
        [T[K] extends Function, K extends `${S}${string}`] extends [true, true]
        ? K 
        : never
}[keyof T];

这个写法的原理是:把两个条件的判断结果(true或false)放入元组,只有当两个条件都为true时,元组才会匹配[true, true],此时返回键名K,否则返回never。

内容的提问来源于stack exchange,提问作者degebine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:47:42