TypeScript 运算符
栏目:
typescript
发布时间:2024-11-01
typescript 作为 JavaScript 的超集,继承了 JavaScript 的大部分运算符,并添加了一些与类型系统相关的特性。运算符用于执行各种算术、赋值、比较、逻辑、位运算等。以下是 TypeScript 中常用运算符的详细介绍。
一、算术运算符
算术运算符用于执行数学运算,如加法、减法、乘法、除法和取余等。
- 加法 (
+):let sum = 5 + 3; - 减法 (
-):let difference = 5 - 3; - 乘法 (
*):let product = 5 * 3; - 除法 (
/):let quotient = 5 / 3;// 结果为浮点数 - 取余 (
%):let remainder = 5 % 3;// 结果为余数 - 指数 (
**):let power = 2 ** 3;// ES2016 引入,计算 2 的 3 次方
二、赋值运算符
赋值运算符用于将值赋给变量。
- 简单赋值 (
=):let a = 5; - 加法赋值 (
+=):let a = 5; a += 3;// 等同于a = a + 3; - 减法赋值 (
-=):let a = 5; a -= 3; - 乘法赋值 (
*=):let a = 5; a *= 3; - 除法赋值 (
/=):let a = 5; a /= 3; - 取余赋值 (
%=):let a = 5; a %= 3;
三、比较运算符
比较运算符用于比较两个值,并返回布尔值。
- 等于 (
==): 检查值是否相等(不进行类型转换比较时可能不准确) - 严格等于 (
===): 检查值和类型是否都相等 - 不等于 (
!=): 检查值是否不相等(不进行类型转换比较时可能不准确) - 严格不等于 (
!==): 检查值和类型是否都不相等 - 大于 (
>): 检查左侧值是否大于右侧值 - 小于 (
<): 检查左侧值是否小于右侧值 - 大于等于 (
>=): 检查左侧值是否大于或等于右侧值 - 小于等于 (
<=): 检查左侧值是否小于或等于右侧值
四、逻辑运算符
逻辑运算符用于布尔值的组合。
- 逻辑与 (
&&): 当且仅当两个操作数都为真时返回真 - 逻辑或 (
||): 当至少一个操作数为真时返回真 - 逻辑非 (
!): 将操作数的布尔值取反
五、位运算符
位运算符对二进制位进行操作。
- 按位与 (
&) - 按位或 (
|) - 按位异或 (
^) - 按位非 (
~) - 左移 (
<<) - 右移 (
>>) - 无符号右移 (
>>>)
六、三元运算符
三元运算符是条件运算符,用于根据条件返回不同的值。
let condition = true;
let result = condition ? 'True' : 'False';
七、类型运算符(TypeScript 特有)
TypeScript 引入了一些与类型相关的运算符,这些运算符在编译时起作用,而不是在运行时。
- 类型断言 (
as): 用于将变量断言为特定类型。let someValue: any = "this is a string"; let strLength: number = (someValue as string).length; - 类型保护(通过
typeof或instanceof): 用于在运行时检查变量的类型。function isString(value: any): value is string { return typeof value === "string"; } - 条件类型(
T extends U ? X : Y): 根据条件选择类型。type Message<T> = T extends string ? string : never; - 非空断言运算符 (
!): 告诉 TypeScript 编译器某个值一定不是null或undefined。function processString(str?: string) { // 使用非空断言运算符 const length = str!.length; }
八、其他运算符
- 可选链(
?.): 访问嵌套对象属性时,如果某个属性不存在则不会抛出错误,而是返回undefined。const obj = { a: { b: 2 } }; console.log(obj.a?.b?.toString()); // "2" console.log(obj.x?.y?.toString()); // undefined - 空值合并运算符(
??): 当左侧操作数为null或undefined时,返回右侧操作数。let foo = null ?? 'default string'; console.log(foo); // 输出 "default string"
九、使用运算符的注意事项
- 确保运算符适用于操作数的类型。
- 注意类型转换,特别是使用
==和!=时。 - 合理使用类型断言和类型保护,以避免类型错误。
通过掌握这些运算符,你可以更有效地在 TypeScript 中编写代码,并利用类型系统的优势来提高代码的质量和可维护性。
本文地址:https://www.tides.cn/p_typescript-operators