94 lượt xem
Ẩn danh
Ngày 30 Tháng 01
Mình đã định nghĩa cho type như code ở dưới nhưng khi run code thì hiện gạch đỏ ở action trong key={cancelActionPayload.action} và lỗi 'Property 'action' does not exist on type'. Mình cứ nghĩ rõ ràng mình có trường action rồi mà không biết sai ở đâu ta? :< type CancelActionPayload = | { action: string; descriptions: string[]; } | { action: string; descriptions?: undefined; } | { descriptions: string[]; };
Đánh giá câu hỏi ngay!
Hãy ấn ↑Up Vote với những câu hỏi cụ thể và chi tiết
Hãy ấn ↓Down Vote với những câu hỏi chưa rõ ràng Careerly sẽ nhắc người hỏi chỉnh sửa lại.
3 câu trả lời
Trong type CancelActionPayload thì bạn định nghĩa cho 2 object đầu là type action nhưng object cuối thì bạn không có định nghĩa type là action, nên Typescript nó hiện lỗi như vậy luôn á. Vì ở lập trường người code thì bạn có thể nghĩ trong CancelActionPayload có action rồi, nhưng ở lập trường của máy tính nó không chắc có action không, có thể có có thể không, nên nó hiện lỗi như vậy. Vậy trong trường hợp này thì bạn cần phân tách và định nghĩa các type trong “CancelActionPayload” rõ ràng hơn. Hoặc bạn có thể dùng Type Guard để làm cho Typescript hiểu rõ về type của CancelActionPayload hơn.
Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!
Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.
Bạn đã có tài khoản rồi?
Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!
Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.