搜尋

首頁  >  問答  >  主體

斷言一個類型沒有品牌化

<p>如果我們定義一個類型品牌,例如:</p> <pre class="brush:php;toolbar:false;">declare const nominalSymbol: unique symbol; type Nominal<T extends string, U> = U & { [nominalSymbol]: T };</pre> <p>有沒有方法可以定義一個型別<code>NotNominal<U></code>,如果<code>U</code>不是品牌類型,則解析為<code>U< /code>。 </p> <pre class="brush:php;toolbar:false;">declare const nominalSymbol: unique symbol; type Nominal<T extends string, U> = U & { [nominalSymbol]: T }; type BrandedType = Nominal<'Address', string>; type a = NotNominal<string> // 這應該是 `string` type b = NotNominal<Address> // 這應該是 `never`</pre> <p><br /></p>
P粉323224129P粉323224129474 天前521

全部回覆(1)我來回復

  • P粉727531237

    P粉7275312372023-08-19 10:27:26

    type NotNominal<U> = U extends { [nominalSymbol]: string } ? never : U

    回覆
    0
  • 取消回覆