typescript - Lọc một kiểu chỉ còn các thuộc tính không phải null của nó
với loại này
type HasOptionals = {
name: string
surname?: string
}
Có thể tạo một kiểu loại trừ bất kỳ thuộc tính tùy chọn nào không?
type example = OnlyRequired<HasOptionals> // { name: string }
Câu trả lời #1
Bạn có thể sử dụng một kiểu ánh xạ với việc ánh xạ lại khóa:
type OnlyRequired<T> = {
[K in keyof T as undefined extends T[K] ? never : K]: T[K]
}
Bây giờ OnlyRequired<HasOptionals> thực sự là { name: string; }.
