断言一个类型没有品牌化
<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>