HarmonyOS 鸿蒙Next有办法简化下面的操作么?applyDefaults方法有些重复
HarmonyOS 鸿蒙Next有办法简化下面的操作么?applyDefaults方法有些重复
export class WebViewOptions {
usePlugin: boolean = false
injectPlugins: string[] = []
forceLandSpace: boolean = false
addImageLongPress: boolean = false
adjustSafeArea: boolean = false
navigationBar: NavigationBar = new NavigationBar()
progressHide: boolean = false
progressColor: string = '#008000'
appendUserAgent: string = ''
}
export class NavigationBar {
color: string = '#ffffff'
buttonColor: string = '#000000'
title: string = ''
titleColor: string = '#000000'
titleSize: number = 18
hideMenu: boolean = false
}
const defaultWebViewOptions = new WebViewOptions()
const defaultNavigationBar = defaultWebViewOptions.navigationBar
function applyDefaults(options?: WebViewOptions): WebViewOptions {
return {
usePlugin: options?.usePlugin ?? defaultWebViewOptions.usePlugin,
injectPlugins: options?.injectPlugins ?? defaultWebViewOptions.injectPlugins,
forceLandSpace: options?.forceLandSpace ?? defaultWebViewOptions.forceLandSpace,
addImageLongPress: options?.addImageLongPress ?? defaultWebViewOptions.addImageLongPress,
adjustSafeArea: options?.adjustSafeArea ?? defaultWebViewOptions.adjustSafeArea,
navigationBar: {
color: options?.navigationBar?.color ?? defaultNavigationBar.color,
buttonColor: options?.navigationBar?.buttonColor ?? defaultNavigationBar.buttonColor,
title: options?.navigationBar?.title ?? defaultNavigationBar.title,
titleColor: options?.navigationBar?.titleColor ?? defaultNavigationBar.titleColor,
titleSize: options?.navigationBar?.titleSize ?? defaultNavigationBar.titleSize,
hideMenu: options?.navigationBar?.hideMenu ?? defaultNavigationBar.hideMenu,
},
progressHide: options?.progressHide ?? defaultWebViewOptions.progressHide,
progressColor: options?.progressColor ?? defaultWebViewOptions.progressColor,
appendUserAgent: options?.appendUserAgent ?? defaultWebViewOptions.appendUserAgent,
};
}
const json = '{}'
const options = applyDefaults(JSON.parse(json) as WebViewOptions)
更多关于HarmonyOS 鸿蒙Next有办法简化下面的操作么?applyDefaults方法有些重复的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你这其实就是json 转对象,没有什么特别简便的方法
这边有个三方库class-transformer ,看看是否满足需求
文档地址:https://developer.huawei.com/consumer/cn/forum/topic/0202149451978737371?fid=0109140870620153026
更多关于HarmonyOS 鸿蒙Next有办法简化下面的操作么?applyDefaults方法有些重复的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题“HarmonyOS 鸿蒙Next有办法简化下面的操作么?applyDefaults方法有些重复”的问题,可以考虑以下几种方式来简化applyDefaults
方法的重复调用:
-
方法重载: 如果
applyDefaults
方法接受不同的参数或参数组合,可以考虑定义多个重载方法,每个方法处理特定的参数情况,从而减少重复代码。 -
默认参数: 在HarmonyOS的ArkUI(如果适用)或相关编程环境中,如果支持默认参数,可以为
applyDefaults
方法设置默认参数值,这样在调用时只需传递必要的参数,减少重复。 -
配置类: 创建一个配置类,将
applyDefaults
方法需要的配置封装在配置类中。在调用applyDefaults
时,只需传递一个配置对象,减少参数的传递和方法的重复调用。 -
工具类或静态方法: 将
applyDefaults
方法及其相关逻辑封装在一个工具类或静态方法中,通过调用工具类或静态方法的方式减少代码的重复。 -
模板方法: 如果
applyDefaults
方法在不同的调用场景中只有部分逻辑不同,可以考虑使用模板方法模式,将公共逻辑放在父类的抽象方法中,将不同逻辑放在子类的具体实现中。
如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html