TypeScript 中一些有用的符号和操作符

?. (Optional Chaining可选链操作符)

可选链操作符 (?.) 安全地访问对象嵌套属性,避免属性不存在时抛出错误。

const user = { profile: { name: 'Alice' } };
const userName = user?.profile?.name;
console.log(userName); // 输出 'Alice'

! (Non-null Assertion非空断言操作符)

非空断言操作符 (!) 在TypeScript中用于告诉编译器某个值不会是 nullundefined

let myValue: string | null;
myValue = 'hello';
console.log(myValue!.toUpperCase()); // 输出 'HELLO'

空值合并操作符 (??)

空值合并操作符用于当左侧操作数为 nullundefined 时,返回右侧操作数。

let value = foo ?? 'default value';

类型断言 (as<type>)

类型断言用于明确告诉编译器某个值的类型。

let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

类型保护 (istypeof)

类型保护用于在运行时检查和区分不同的类型。

function isString(value: any): value is string {
  return typeof value === 'string';
}

联合类型 (|)交叉类型 (&)

联合类型表示一个值可以是几种类型中的一种,而交叉类型表示一个值必须同时具有多种类型。

type UnionType = string | number;
type IntersectionType = { id: number } & { name: string };

可选属性 (?)

在接口或类型定义中,表示属性是可选的。

interface Person {
  name: string;
  age?: number;
}

索引签名 ([key: type]: type)

用于定义对象可以有任意数量的属性。

interface StringArray {
  [index: number]: string;
}

泛型 (<T>)

泛型用于创建可重用的组件,支持任意类型。

function identity<T>(arg: T): T {
  return arg;
}

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值