首頁  >  文章  >  web前端  >  如何在 TypeScript 中執行執行時間介面類型檢查?

如何在 TypeScript 中執行執行時間介面類型檢查?

Susan Sarandon
Susan Sarandon原創
2024-11-16 16:52:03657瀏覽

How to Perform Runtime Interface Type Checking in TypeScript?

TypeScript 中的介面類型檢查

在TypeScript 中,當嘗試驗證類型為any 的變數是否遵循以下條件時,會出現一個常見的困境執行時間指定的介面。考慮以下程式碼:

interface A {
    member: string;
}

var a: any = { member: "foobar" };

if (a instanceof A) alert(a.member);

這裡,TypeScript Playground 在最後一行產生一個錯誤,聲稱名稱 A 在目前作用域中未定義。然而,這是不正確的,因為 A 已明確定義。要解決此問題,重要的是要了解介面在產生的 JavaScript 中沒有表示形式,從而無法進行執行時間類型檢查。

這種困境源自於 JavaScript 的動態特性,其中介面沒有定義的存在。因此,問題出現了:有沒有一種方法可以對 TypeScript 中的介面進行類型檢查?

playground 的自動完成功能確實揭示了一個名為 Implements 的方法,讓我們想知道如何使用它。這就是自訂類型防護發揮作用的地方:

interface A {
    member: string;
}

function instanceOfA(object: any): object is A {
    return 'member' in object;
}

var a: any = { member: "foobar" };

if (instanceOfA(a)) {
    alert(a.member);
}

透過這種方法,您可以對介面進行類型檢查,而無需使用 instanceof。但是,對於更複雜的情況,請考慮使用判別器來管理您自己的判別器並確保不會發生重複。

以上是如何在 TypeScript 中執行執行時間介面類型檢查?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn