ArkTS不支持解构及assign,怎么给对象赋值?

interface A { 
    a:string = ‘’ 
    b:number = 0 
    c:Object = 
} 
let test1:A = {} 
let test2:A= {}

怎么将test1赋值给test2

HarmonyOS
2024-05-30 22:06:10
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
mzshj

可以封装一个assign方法

原方法:

function assign<T, U>(target: T, source: U): T & U; 
const target = { a: 1, b: 2 }; 
const source = { b: 4, c: 5 }; 
const returnedTarget = Object.assign(target, source); 
console.log(target); 
// Expected output: Object { a: 1, b: 4, c: 5 }

自己实现:

function assign(target: Record<string, Object>, …source: Object[]): Record<string, Object> { 
    for (let s of source) { 
        for (let k of Object.keys(s)) { 
            target[k] = Reflect.get(s, k) 
        } 
    } 
    return target 
} 
class D {b: number, c: number} 
const target: Record<string, Object> = { “a”: 1, “b”: 2, } 
const source: D = { b: 4, c: 5 } 
const returnedTarget: Record<string, Object> = Object.assign(target, source) 
console.log(target) 
// Expected output: Object { a: 1, b: 4, c: 5 }
分享
微博
QQ
微信
回复
2024-05-31 21:24:04
相关问题
如何实现解构Obejct.assign
304浏览 • 1回复 待解决
arkts不支持bigint数据类型
513浏览 • 1回复 待解决
ArkTs怎么传递对象或者类Native
759浏览 • 1回复 待解决
for .in 语法不支持,该怎么办啊?
351浏览 • 1回复 待解决
为什么FA模型不支持进程内对象共享
627浏览 • 1回复 待解决
web组件不支持localstorage
260浏览 • 1回复 待解决
ArkTS不支持使用第三方的js库?
2350浏览 • 1回复 待解决
鸿蒙NEXT版本,支不支持APK?
1078浏览 • 1回复 待解决
@BuilderParam 不支持普通class的变量
321浏览 • 1回复 待解决
Lite Wearable 不支持 http 网络接口吗
2269浏览 • 1回复 待解决
本地模拟器不支持断点调试????
1093浏览 • 1回复 待解决
Panel不支持水平方向的拖拉
288浏览 • 1回复 待解决
Refresh组件不支持设置nestedScroll属性
516浏览 • 1回复 待解决
4.0release不支持热重载?
761浏览 • 1回复 待解决
API 9 是否不支持 npm 了?
1124浏览 • 1回复 待解决