簡體   English   中英

使用 GraphQL 和 Typescript 的類型 {`id`} 中缺少屬性“id”

[英]Property 'id' is missing in type {`id`} using GraphQL and Typescript

我是編碼和 Typescript 的新手,所以請原諒我缺乏知識。 我試圖讓我的應用程序與我的 api 交談,但由於我的主 ID 鍵有一個“?”而出現以下錯誤。 如下:

export interface PartMaster {
    id?: number;
 }

當我刪除“?” 我得到一個不同的錯誤,當我保留它時,我也會得到一個不同的錯誤。 我在 GraphQL 中遺漏了什么嗎? 我主要是前端開發人員,我的同事已經完成了所有的 GraphQL 管理,但我今天需要自己解決這個問題,因此我們將不勝感激。

這是當我有“?”時它不喜歡的代碼在 ID 中:

computed: {
    part(): PartMaster {
      return {
        partNumber: this.partNumber,
        
      }
    }
  },

錯誤讀取類型 partNumber 中缺少的屬性“id”

這是我包含“?”時的錯誤:

editRow(partMaster.id)
editRow(part.id)

它強調了 partmaster.id 和 part.id 並出現以下錯誤:

'number | 類型的參數 undefined' 不能分配給“number”類型的參數。 類型“未定義”不可分配給類型“數字”。

這個問題確實需要更多細節,包括定義editRow function 和調用GraphQL 查詢的部分,以及id未標記為可選時的錯誤文本。 但是,我還沒有足夠的聲譽來發表評論,因此將在答案中解決這個問題。

有了給定的信息,我可以猜到:

  • 您給出的最后一條錯誤消息( Argument of type 'number | undefined' is not assignable to parameter of type 'number'. Type 'undefined' is not assignable to type 'number'. )可能是因為editRow需要一個類型的參數number 通過將id標記為可選,您表明它有時可能是undefined 要么不將其標記為可選,要么讓editRow接受number | undefined number | undefined並處理代碼中undefined的情況。
  • 在刪除“?”的情況下從 id 開始,我首先要檢查的是您的 GraphQL 查詢實際上確實請求了id字段。 GraphQL 的要點是僅請求您需要的內容,因此您的同事可能沒有將此字段添加到請求中。 如果不是這樣,如果沒有上面提到的額外細節,我將無法提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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