|
|
在 .catch((err: BusinessError) => { ... }) 这段代码中,err: BusinessError 是 箭头函数的输入参数,用于声明回调函数接收的错误对象类型。以下是详细解析:
1. 参数作用解析
err:是 .catch() 方法回调函数的形参,表示异步操作(如 Promise)被拒绝(rejected)时抛出的错误对象。
BusinessError:通过 TypeScript 类型注解声明 err 的类型,确保错误对象符合 BusinessError 的结构(即包含 code 和 message 等属性)。
2. 语法特性说明
箭头函数参数类型注解
在 TypeScript/ArkTS 中,函数参数的类型声明通过 参数名: 类型 的语法实现。此处通过 (err: BusinessError) 明确告知编译器:err 参数必须是 BusinessError 类型。
与返回值的区别
箭头函数的返回值由函数体({} 内的逻辑)决定,此例中未显式返回任何值(即默认返回 undefined)。若需返回值,需通过 return 语句实现,例如:
- .catch((err: BusinessError): string => { return err.message; }); // 返回值类型为 string
复制代码
3. 实际应用场景
通过搜索结果中的代码示例(如窗口操作、路由跳转等),可以观察到以下用法:
- // 示例1:窗口操作中的错误处理
- windowStage.getMainWindow((err: BusinessError, data) => {
- if (err.code) {
- console.error(`错误码:${err.code}, 错误信息:${err.message}`);
- }
- });
- // 示例2:路由跳转错误处理
- try {
- router.back();
- } catch (err) {
- let code = (err as BusinessError).code; // 强制类型断言
- }
复制代码
总结
·err 是 输入参数,接收异步操作抛出的错误对象。
·BusinessError 是类型注解,确保参数类型安全,避免直接使用 any 类型。
·这种设计符合 HarmonyOS 开发规范,有利于统一错误处理逻辑并提升代码可维护性。 |
|