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

TypeScript类型中布尔比较的标准实现方式是什么?

TypeScript类型中布尔逻辑运算的标准实现方式

你实现的布尔类型运算逻辑是正确的,但社区里有更简洁、符合习惯的写法,以下是优化后的实现:

与运算(And)

只有当两个布尔值都为true时返回true,否则返回false,可以用交叉类型简化:

type And<T extends boolean, U extends boolean> = T & U extends true ? true : false;

也可以用条件分支的简洁写法:

type And<T extends boolean, U extends boolean> = T extends true ? U extends true ? true : false : false;

或运算(Or)

只要有一个布尔值为true就返回true,否则返回false,你的写法已经很简洁,也可以写成更直接的形式:

type Or<T extends boolean, U extends boolean> = T extends true ? true : U;

异或运算(Xor)

两个布尔值不同时返回true,相同时返回false,可以大幅简化嵌套判断:

type Xor<T extends boolean, U extends boolean> = T extends U ? false : true;

测试用例

type TestAnd1 = And<true, true>; // 结果:true
type TestAnd2 = And<true, false>; // 结果:false
type TestOr1 = Or<false, true>; // 结果:true
type TestOr2 = Or<false, false>; // 结果:false
type TestXor1 = Xor<true, false>; // 结果:true
type TestXor2 = Xor<true, true>; // 结果:false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:23:32