Javascript partial类型的参数不能分配给partial类型的参数
我正在尝试更新TypeScript中某个接口的部分属性,如下所示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
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@ddprrtexport const callMe=(detailsMe:details):AppThunk=>(console.log(“Hi”)
,我在这里遇到语法错误,怎么了?应该是部分的,而不是细节的。最好以大写字母开头接口名称,以小写字母开头属性名称。