Javascript partial类型的参数不能分配给partial类型的参数

Javascript partial类型的参数不能分配给partial类型的参数,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在尝试更新TypeScript中某个接口的部分属性,如下所示 interface details{ name: string, phonenumber: number, IsActive: boolean } let pDt: Partial<details> = {IsActive: false}; 接口详细信息{ 名称:string, 电话号码:, IsActive:布尔值 } 设pDt:Partial={IsActive:false}; 当我试图将deta

我正在尝试更新TypeScript中某个接口的部分属性,如下所示

interface details{
  name: string,
  phonenumber: number,
  IsActive: boolean
}

let pDt: Partial<details> = {IsActive: false};
接口详细信息{
名称:string,
电话号码:,
IsActive:布尔值
}
设pDt:Partial={IsActive:false};
当我试图将
details
作为参数传递给它时,它给出了下面的问题“Partial类型的参数不可分配给'detail'类型的参数”

这里出了什么问题,如何纠正

Partial类型的参数不可分配给“detail”类型的参数

不能将类型的分部指定给生成分部的原始类型

interface Details{
  name: string,
  phonenumber: number,
  IsActive: boolean
}

let partialDetails: Partial<Details> = {IsActive: false};
let details: Details = partialDetails // error
接口详细信息{
名称:string,
电话号码:,
IsActive:布尔值
}
让partialDetails:Partial={IsActive:false};
let details:details=partialDetails//错误

这是有意义的,因为
Details
要求所有属性都有一个值,但是
Partial
可以忽略这些属性中的任何一个。这会使分部与生成分部的while类型不兼容


“修复”这件事并不容易。这取决于应用程序的逻辑。如果您有一个函数需要一个完整的
详细信息
,那么您必须向它传递一个完整的
详细信息
,而
部分
就不行了。

如果您想使用部分,可以这样强制转换它:

interface Details{
  name: string,
  phonenumber: number,
  IsActive: boolean
}

let partialDetails: Partial<Details> = {IsActive: false};
let details: Details = partialDetails as Details;
接口详细信息{
名称:string,
电话号码:,
IsActive:布尔值
}
让partialDetails:Partial={IsActive:false};
let details:details=作为细节的部分细节;

您的方法还需要使用Partial作为参数。如果您只有“详细信息”,则TypeScript假定所有字段都已设置,但实际情况并非如此。因此,您需要函数f(det:Partial)来确保在方法中检查字段是否实际存在there@ddprrt
export const callMe=(detailsMe:details):AppThunk=>(console.log(“Hi”)
,我在这里遇到语法错误,怎么了?应该是
部分的
,而不是
细节的
。最好以大写字母开头接口名称,以小写字母开头属性名称。