在同一介面中,將介面中的一個屬性用作另一個屬性的陣列長度
P粉032977207
P粉032977207 2023-09-16 23:36:08
0
1
538

我有一個接口,它將作為部分組件的props,用於顯示不同的設備。每個設備都將放置在一個網格列中的卡片上。

這是接口:

interface EquipmentSectionProps { bgColor: "black" | "lightGrey"; columns: number; category: string; products: string[]; productImages: string[]; productReferals: string[]; }

給定屬性columns,我想透過屬性columns限制數組productsproductImagesproductReferals的大小,因為它們的使用與列數相關。

顯而易見的第一種嘗試是直接將屬性columns傳遞到陣列中,像這樣:

interface EquipmentSectionProps { bgColor: "black" | "lightGrey"; columns: number; category: string; products: string[columns]; productImages: string[columns]; productReferals: string[columns]; }

然而,回應回傳:

Cannot find name 'columns'.ts(2304) type columns = /*unresolved*/ any

有沒有更簡單的方法可以實現這一點,而不需要建立一個重複的介面並將屬性傳遞給新介面?

P粉032977207
P粉032977207

全部回覆 (1)
P粉194919082

很遺憾,你無法透過TypeScript類型(例如你展示的介面宣告)來限制陣列的長度。你需要在元件的程式碼中寫長度檢查。

儘管在javascript中有一種用特定長度初始化數組的方法,但是javascript本身沒有強制執行可使長度不可變的機制。沒有任何東西可以阻止數組的長度增加,這意味著你需要根據需要明確地檢查長度。

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!