11 điểm bởi kakasoo 2025-03-13 | 10 bình luận | Chia sẻ qua WhatsApp

DeepStrictTypes là bộ utility type cho TypeScript được tạo ra để giúp xử lý các object lồng nhau một cách an toàn và tiện lợi hơn.

Khi dùng Omit hoặc Pick hiện có, sẽ khá khó để xử lý gọn gàng các thuộc tính nằm sâu bên trong, nhưng nếu dùng DeepStrictOmitDeepStrictPick thì bạn có thể chọn lọc chính xác chỉ những phần mình muốn.

Ví dụ, với kiểu { user: { name: string; age: number } }, nếu dùng DeepStrictOmit<Example, 'user.name'> thì nó sẽ được biến đổi chính xác thành { user: { age: number } }. Ngược lại, nếu dùng DeepStrictPick<Example, 'user.name'> thì bạn cũng có thể chỉ giữ lại phần cần thiết như { user: { name: string } }.

Lý do điều này cần thiết là vì:
✔️ Khi cần lọc chỉ một số trường nhất định trong phản hồi API
✔️ Khi muốn chỉ giữ lại những phần mong muốn trong object lồng nhau

Theo hướng thử nghiệm, tác giả cũng đã thêm các utility runtime như deepStrictObjectKeys, deepStrictAssert.

Hãy thử dùng và gửi phản hồi nhé! Sự quan tâm tới mã nguồn mở là nguồn động lực lớn cho tác giả!

10 bình luận

 
metis041 2025-03-14

TypeScript lúc nào cũng là đỉnh

 
kakasoo 2025-03-14

Cảm ơn bạn, người hiểu được sự tuyệt vời của TypeScript.

 
kakasoo 2025-03-14

Cảm ơn bạn!

 
softer 2025-03-14

Like mạnh

 
kakasoo 2025-03-14

Cảm ơn đề cử ủng hộ

 
sunrabbit 2025-03-13

Không biết có ai dùng kiểu dữ dội đến mức này không nữa
Nên cũng thấy tò mò về các trường hợp sử dụng thực tế

 
kakasoo 2025-03-13

Tôi đã dùng nó khá nhiều khi làm trong lĩnh vực quảng cáo... :)
Facebook, Google... nói gì thì nói, cuối cùng lĩnh vực quảng cáo chỉ khác nhau đôi chút và hầu như có thể được trừu tượng hóa bằng các kiểu rất giống nhau, nên tôi thường dùng nó khi gom các dịch vụ khác nhau vào cùng một domain.

 
wogns3623 2025-03-14

Có vẻ kiểu đó thường được dùng khá nhiều khi gia công qua lại các kiểu bản ghi dữ liệu DB trên server.

 
kakasoo 2025-03-14

Đúng vậy. Thực ra tôi không nhận được nhiều sự đồng cảm từ phía các bạn làm frontend.