Compilation

使用 graph-ts 新版本編譯子圖的問題

  • April 11, 2022

我收到此錯誤:ERROR TS2322: Type '~lib/@graphprotocol/graph-ts/common/value/Value | null' is not assignable to type '~lib/@graphprotocol/graph-ts/common/value/Value'.

我知道這是因為他們所做的更改(https://thegraph.com/docs/developer/assemblyscript-migration-guide#nullability-check-with-property-access)但我不知道如何將程式碼重構為讓它起作用。這是我給出的錯誤程式碼:

 save(): void {
   let id = this.get("id");
   assert(id !== null, "Cannot save Bundle entity without an ID");
   assert(
     id.kind == ValueKind.STRING,
     "Cannot save Bundle entity with non-string ID. " +
       'Considering using .toHex() to convert the "id" to a string.'
   );
   store.set("Bundle", id.toString(), this);
 }

具體線路是這一行:

id.kind == ValueKind.STRING,

謝謝!

您分享的片段來自generated/schema.ts

很難說,但錯誤看起來像是類型轉換問題。需要查看完整的處理程式碼才能給出準確的答案,但您可以嘗試使用類型轉換,如as Value.

您可以使用 npm 或 yarn 安裝 Graph CLI。複製到您的終端:

npm install -g @graphprotocol/graph-cli

或者

yarn global add @graphprotocol/graph-cli

並確保您的打字稿版本> 2.1

引用自:https://ethereum.stackexchange.com/questions/115037