TypeScript:可选链操作符(?.) 作者:马育民 • 2025-12-18 11:26 • 阅读:10003 # 介绍 用于安全访问嵌套对象的 `属性` 或 `方法`,避免因中间层级为 `null` 或 `undefined` 导致的报错。 即:如果 `?.` 左侧的值为 `null`/`undefined`,则直接返回 `undefined`,不再执行后续访问; # 例子 有下面嵌套对象 ``` const user = { name: "张三", address: { city: "北京", street?: "朝阳路" } }; ``` ### 访问嵌套可选属性 ``` const street = user.address?.street; // 安全获取 street,返回 "朝阳路" const zipCode = user.address?.zipCode; // 无 zipCode,返回 undefined ``` ### 访问数组元素 ``` const arr: number[] | undefined = [1, 2, 3]; const first = arr?.[0]; // 返回 1;若 arr 为 undefined,返回 undefined ``` ### 调用可选方法 ``` const fn: (() => string) | undefined = () => "hello"; const result = fn?.(); // 调用 fn,返回 "hello";若 fn 为 undefined,返回 undefined ``` ### 对比传统判空(繁琐) ``` const streetOld = user.address && user.address.street; ``` 原文出处:http://malaoshi.top/show_1GW2QbvKnd8v.html