[英]Non-null assertion operator for generic type in Typescript
以下代碼:
type A = number | undefined
type B<C extends number> = C
let a: B<A>;
會給我錯誤:
Type 'A' does not satisfy the constraint 'number'. Type 'undefined' is not assignable to type 'number'.
是否可以假設 A 將被定義,例如:
let a: B<A!>
// or
let a: B<NonNullable<A>>
?
此非空斷言運算符旨在用於javascript
變量。 將它用於 TypeScript 類型基本上是沒有意義的。
我很確定你的問題來自另一個地方,它迫使你以這種方式行事,而你需要解決這個問題。
無論如何,如果您想快速解決這個問題,您可能需要使用Exclude
實用程序類型。
完整的解決方案:
type A = number | undefined
type B<C extends number> = C
const a: B<Exclude<A, undefined>> = 234;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.