模式切换
运算符
TypeScript 继承了 JavaScript 的所有运算符,并且增加了几个额外的类型检查运算符。以下是一些常用的 TypeScript 运算符:
算术运算符
- 加法运算符 (+)
- 减法运算符 (-)
- 乘法运算符 (*)
- 除法运算符 (/)
- 取余运算符 (%)
- 递增运算符 (++)
- 递减运算符 (--)
比较运算符
- 等于运算符 (==)
- 不等于运算符 (!=)
- 严格等于运算符 (===)
- 严格不等于运算符 (!==)
- 大于运算符 (>)
- 大于等于运算符 (>=)
- 小于运算符 (<)
- 小于等于运算符 (<=)
- in 运算符(检查对象是否包含某个属性)
- instanceof 运算符(检查对象是否是某个类的实例)
逻辑运算符
- 逻辑与运算符 (&&)
- 逻辑或运算符 (||)
- 逻辑非运算符 (!)
- 条件(三元)运算符 (? 😃
位运算符
- 位与运算符 (&)
- 位或运算符 (|)
- 位异或运算符 (^)
- 位非运算符 (~)
- 左移运算符 (<<)
- 右移运算符 (>>)
- 无符号右移运算符 (>>>)
赋值运算符
- 赋值运算符 (=)
- 加法赋值运算符 (+=)
- 减法赋值运算符 (-=)
- 乘法赋值运算符 (*=)
- 除法赋值运算符 (/=)
- 取余赋值运算符 (%=)
- 左移赋值运算符 (<<=)
- 右移赋值运算符 (>>=)
- 无符号右移赋值运算符 (>>>=)
- 位与赋值运算符 (&=)
- 位或赋值运算符 (|=)
- 位异或赋值运算符 (^=)
类型运算符
- typeof 运算符(获取变量或表达式的类型)
- instanceof 运算符(检查对象是否是特定类的实例)
- as 运算符(类型断言)
- is 运算符(类型守卫)
- keyof 运算符(获取对象类型的键)
其他运算符
- 条件(三元)运算符 (
? :
) - 逗号运算符 (
,
) - void 运算符(评估表达式并返回 undefined)
- delete 运算符(删除对象的属性)
- typeof 运算符(获取变量或表达式的类型)
在 TypeScript 中,大多数运算符的行为与 JavaScript 中的相同。然而,由于 TypeScript 提供了静态类型检查,因此某些运算符的行为可能会因类型不同而有所变化。 例如,当你使用比较运算符比较不同类型的值时,TypeScript 可能会引发类型错误。
此外,as 运算符是 TypeScript 特有的,它允许你明确地告诉编译器:“我知道我正在做什么,我想将这个值视为这个类型。”这通常用于在编译时避免类型错误,尤其是在处理复杂的类型或库时。
keyof 运算符也是 TypeScript 特有的,它用于获取对象类型的所有键名组成的联合类型。这在编写泛型代码时特别有用。
请注意,TypeScript 还支持模板字符串(使用反引号 ``` 包围的字符串),这是 ES6(ECMAScript 2015)引入的新特性,而不是 TypeScript 特有的。模板字符串允许你嵌入表达式,并提供了更灵活的字符串格式化方式。