![](/img/trans.png)
[英]Argument of type is not assignable to parameter of type partial<>
[英]Argument of type partial is not assignable to parameter of type
我正在嘗試更新 TypeScript 中接口之一的部分屬性,如下所示
interface details{
name: string,
phonenumber: number,
IsActive: boolean
}
let pDt: Partial<details> = {IsActive: false};
當我試圖向它傳遞一種將details
作為參數的方法時,它給出了以下問題“ Partial 類型的參數不可分配給‘detail’類型的參數”。
這里有什么問題以及如何糾正?
在你的情況下,如果你想使用 Partial,你可以像這樣投射它:
interface Details{
name: string,
phonenumber: number,
IsActive: boolean
}
let partialDetails: Partial<Details> = {IsActive: false};
let details: Details = partialDetails as Details;
Partial 類型的參數不可分配給“detail”類型的參數
您不能將類型的部分分配給您從中創建部分的原始類型。
interface Details{
name: string,
phonenumber: number,
IsActive: boolean
}
let partialDetails: Partial<Details> = {IsActive: false};
let details: Details = partialDetails // error
這是有道理的,因為Details
需要所有屬性的值,但Partial<Details>
可以省略任何這些屬性。 這使得部分與您制作部分的 while 類型不兼容。
沒有簡單的“修復”這個。 這取決於您的應用程序的邏輯。 如果您有一個需要完整Details
的 function ,那么您必須將整個Details
傳遞給它,而Partial<Details>
則不行。
如果您打算稍后填寫有關details
的額外字段,這是一種非常常見的 JavaScript 模式,請執行以下操作:
let pDt = {IsActive: false} as details;
Typescript 在提供幫助時非常有用,但如果您 go 落伍了,它通常也很容易成為阻礙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.