簡體   English   中英

如何在Typescript中對通用類的通用參數設置約束?

[英]How set constraints on generic param of generic class in Typescript?

假設我有這樣的界面:

interface Identity<TValue> {
  readonly value: TValue;
}

現在我想為此創建存儲

class IdentityStorage<TIdentity> {

}

但是我想為TIdentity類型設置類型約束。 我該怎么做? 我已經嘗試過這樣的事情

class IdentityStorage<TIdentity extends Identity> {} 
class IdentityStorage<TIdentity<TValue> extends Identity<TValue>> {}

但是它們都不起作用。 如何設置這種約束?

您可能要使用兩個類型參數,如:

class IdentityStorage<TValue, TIdentity extends Identity<TValue>> {} 

這表示您想要的確切約束。 如果您願意放寬自己的約束條件,可以執行類似的操作

class IdentityStorage<TIdentity extends Identity<any>> {}

這也將起作用,但可能會允許您不需要的某些東西(取決於Identity<TValue>多少個屬性取決於TValue以及以哪種方式... TValue ,只有一個類型為TValue屬性,所以這很好)

希望能有所幫助。 祝好運!

暫無
暫無

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

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