簡體   English   中英

如何在不使用關鍵字“any”的情況下修復 Typescript 中錯位的類型

[英]How to fix misplaced type in Typescript without using keyword “any”

我有一個使用 CryptoJS 庫的 TypeScript 項目。 linter 顯示我引用了“DecryptedMessage”類型上不存在屬性“sigBytes”。 我可以毫無問題地將此屬性登錄到控制台。 產生此消息的代碼:

let dec = CryptoJS.AES.decrypt(text, this.key, {iv: this.iv});
console.log(dec.sigBytes); // There it logs the property correctly

我從 npm 得到類型定義。 我嘗試將變量 dec 設置為 CryptoJS.LibWordArray,如下所示:

let dec: CryptoJS.LibWordArray = CryptoJS.AES.decrypt(text, this.key, {iv: this.iv});

但 linter 顯示“類型 'DecryptedMessage' 缺少類型 'LibWordArray' 的以下屬性:sigBytes,單詞”

代碼運行良好,但是我想知道解決此問題或類似問題的最佳實踐。 使用 any 不會產生警告,

let dec: CryptoJS.LibWordArray = CryptoJS.AES.decrypt(text, this.key, {iv: this.iv});

但我不確定這是一個好習慣

解決了關鍵字as的問題(感謝@Budaa 的建議):

let dec = CryptoJS.AES.decrypt(text, this.key, {iv: this.iv}) as CryptoJS.LibWordArray;

暫無
暫無

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

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