TypeScript 运算符
运算符用于对操作数执行运算。TypeScript 的运算符与 JavaScript 几乎完全一致,但参与运算的值带有静态类型:number 与 string 直接相加会在编译期报错,而不是等到运行时才暴露问题。下面按类别逐个讲解。
1. 算术运算符
负责数学计算:+ 加、- 减、* 乘、/ 除、% 取余、** 幂、++ 自增、-- 自减:
const a: number = 10;
const b: number = 4;
console.log(a + b); // 输出:14
console.log(a - b); // 输出:6
console.log(a * b); // 输出:40
console.log(a / b); // 输出:2.5
console.log(a % b); // 输出:2
console.log(2 ** 3); // 输出:8
let n: number = 5;
n++; // 自增 1
console.log(n); // 输出:6
2. 赋值运算符
= 把右侧的值赋给左侧变量,结合算术运算符可缩写为 +=、-=、*=、/=、%=:
let score: number = 90;
score += 5; // 等价于 score = score + 5
score -= 10;
console.log(score); // 输出:85
3. 比较运算符
比较两个值并返回布尔结果。日常推荐用 ===(严格相等,类型与值都相同才为 true)与 !==:
const x: number = 5;
console.log(x > 3); // 输出:true
console.log(x === "5"); // 输出:false,类型不同
console.log(x !== 5); // 输出:false
4. 逻辑运算符
&&(与)、||(或)、!(非)用于组合布尔条件;??(空值合并)在左侧为 null 或 undefined 时取右侧的默认值:
const age: number = 20;
const hasCard: boolean = true;
console.log(age >= 18 && hasCard); // 输出:true
console.log(!hasCard); // 输出:false
const nickname: string | null = null;
console.log(nickname ?? "游客"); // 输出:游客
5. 类型运算符
typeof 取得值的类型字符串,in 判断属性名是否存在于对象中,常配合类型守卫使用:
const v: unknown = 42;
console.log(typeof v); // 输出:number
const user = { name: "小明", age: 18 };
console.log("name" in user); // 输出:true
小结
TypeScript 的运算符体系沿袭自 JavaScript,使用时记住两点即可:优先用 === 判断相等、用 ?? 兜底空值。一旦类型写错,编译器会第一时间提醒你。