gpt4 book ai didi

typescript 如何克隆除一键外的对象

转载 作者:行者123 更新时间:2023-12-03 16:23:40 27 4
gpt4 key购买 nike

我有两个接口(interface)。除了一个键之外,它们非常相似。

interface InitialStateFromDB {
uploads: {
companyImage: string,
map: string
},
adminPasswords: string,
postInfos: PostInfo[] | undefined
}

interface InitialState extends Omit<InitialStateFromDB, 'adminPasswords'> {
adminPasswords: AdminPassword
}

我从数据库中得到了 initialState。
const initialStateFromDB: InitialStateFromDB = window.__PRELOADED_STATE__;

然后我从 initialStateFromDB 中提取每个属性的值来生成 initialState。
let adminPasswords: AdminPassword = JSON.parse(initialStateFromDB.adminPasswords);
const initialState : InitialState = {
uploads : initialStateFromDB.uploads,
adminPasswords,
postInfos: initialStateFromDB.postInfos
}

但我认为除了 adminPasswords 属性之外,还有一种更简单的合并方法。所以我搜索了这个。

Clone a js object except for one key

但是,我不知道如何在 typescript 中这样做。

所以,我的问题是 “如何在 Typescript 中克隆除一个键之外的对象”

最佳答案

您需要的是spread operator (检查“对象传播和休息”部分)。 Typescript 是 JavaScript 的超集,它们都支持这个特性。

const {adminPasswords, ...state} = initialStateFromDB;
const initialState: InitialState = {
...state,
adminPasswords: JSON.parse(adminPasswords)
}

关于 typescript 如何克隆除一键外的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55860019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com