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