簡體   English   中英

部分類型的參數不能分配給類型的參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM