在typescript中使用JSON.parse(JSON.字符串化(数据))类型

wgmfuz8q  于 2022-12-01  发布在  TypeScript
关注(0)|答案(2)|浏览(630)

我正在使用typescript,并希望深度复制我的对象。我使用了JSON.parse(JSON.stringify(data))方法,下面是代码
const dataClone: DataType[] = JSON.parse( JSON.stringify(data) );
我的数据是一个对象类型为DataType[]的数组。但我收到警告,我使用了任何类型,它是-any值的不安全赋值。
我哪里漏了型?
我试图将类型放在变量声明之后
const dataClone: DataType[] = JSON.parse( JSON.stringify(data) );

ia2d9nvy

ia2d9nvy1#

当你使用JSON.stringify时,你的类型会丢失到string,当你使用JSON.parse时,你的类型会丢失到any,所以你必须使用一个类型Assert来告诉编译器它的类型是DataType[],如下所示:

const dataClone = JSON.parse(JSON.stringify(data)) as DataType[];
ht4b089n

ht4b089n2#

还可以使用扩散运算符

const dataClone: DataType[] = [...state.initialData]

相关问题