Lỗi 'Property xxx does not exist on type'

94 lượt xem

profile picture

Ẩ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

Ảnh đại diện của Harry Tran

dư ký tự đặc biêt | ở dòng 2 kìa bạn :))

Ảnh đại diện của Hien Nguyen

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.

Ảnh đại diện của Hoàng Long

Thử đổi code bạn viết trên câu hỏi thành key={cancelActionPayload?.action} xem

Đă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.

Xem thêm

Đồng ý với Điều khoản dịch vụ Chính sách bảo mật của Careerly

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.