Kiểu NonNullable<T> được sử dụng để loại bỏ các kiểu null và undefined khỏi kiểu T (ok)
Last updated
Was this helpful?
Last updated
Was this helpful?
Trong TypeScript, kiểu NonNullable<T>
được sử dụng để loại bỏ các kiểu null
và undefined
khỏi kiểu T
. Đoạn mã bạn cung cấp:
TypeScript
thực hiện điều này bằng cách sử dụng phép giao nhau kiểu (&
).
Giải thích:
T & {}
:
T
đại diện cho kiểu đầu vào.
{}
đại diện cho một kiểu đối tượng rỗng.
Phép giao nhau kiểu (&
) tạo ra một kiểu mới là giao điểm của T
và {}
.
Loại bỏ null
và undefined
:
Khi bạn thực hiện phép giao nhau với {}
, TypeScript loại bỏ null
và undefined
khỏi kết quả. Điều này xảy ra bởi vì null
và undefined
không thể được gán cho một kiểu đối tượng ({}
).
Ví dụ, nếu T
có thể là string | null | undefined
, thì T & {}
sẽ trở thành string
.
Ví dụ sử dụng:
TypeScript
Tại sao lại sử dụng {}
?
{}
đại diện cho kiểu đối tượng cơ bản nhất, cho phép tất cả các giá trị đối tượng.
Bằng cách giao T
với {}
, bạn đang nói rằng kết quả phải là một kiểu có thể gán cho một đối tượng, loại bỏ các giá trị không thể gán cho đối tượng như null
và undefined
.
Lưu ý:
TypeScript cung cấp kiểu dựng sẵn NonNullable<T>
trong các phiên bản gần đây. Vì vậy, bạn thường không cần phải tự định nghĩa nó.
Tuy nhiên, việc hiểu cách nó hoạt động thông qua phép giao nhau kiểu là hữu ích để nắm bắt các khái niệm kiểu nâng cao của TypeScript.