gpt4 book ai didi

typescript - 声明一个克隆函数以使只读属性在 TypeScript 中可写?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:02 26 4
gpt4 key购买 nike

我只读取了 typescript 中的数据和一个 clone 函数:

class Data {
readonly foo: string;
}

const ro: Data = {
foo: 'bar'
}
// how to declare clone so that it returns writable data?
declare function clone<T>(val: T): T;

const rw = clone(ro);
// how to make the properties of rw writable?
rw.foo = 'changed';

如何声明clone函数,使其返回的对象的属性是可写的?

最佳答案

有一种更新的方法可以实现这一点,但我认为更新已经存在的答案并不是记录这一点的最佳方式。

type Mutable<T> = {
-readonly [P in keyof T]: T[P];
};

这具有保留可选修饰符和只需要一个通用参数的额外好处。

( code in playground )

关于typescript - 声明一个克隆函数以使只读属性在 TypeScript 中可写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214743/

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