我正在尝试更新 TypeScript 中接口(interface)之一的部分属性,如下所示
interface details{
name: string,
phonenumber: number,
IsActive: boolean
}
let pDt: Partial<details> = {IsActive: false};
当我试图通过它时,其中一种方法具有 details
作为参数,它给出了以下问题“ Partial 类型的参数不可分配给'detail' 类型的参数”。这里有什么问题以及如何纠正?
最佳答案
Argument of type Partial is not assignable to parameter of type 'detail'
您不能将类型的 Partial 分配给您从中创建部分的原始类型。
interface Details{
name: string,
phonenumber: number,
IsActive: boolean
}
let partialDetails: Partial<Details> = {IsActive: false};
let details: Details = partialDetails // error
Playground这是有道理的,因为
Details
期望所有属性的值,但 Partial<Details>
可以省略任何这些属性。这使得部分与您制作部分的 while 类型不兼容。没有简单的“解决”这个问题。这取决于您的应用程序的逻辑。如果你有一个函数需要一个完整的
Details
那么你必须通过它一个完整的Details
, 一个 Partial<Details>
不行。
关于javascript - 部分类型的参数不能分配给类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63507831/