Làm sao để có thể define đúng type trong TypeScript?

Chào cả nhà,
Mình đang làm quen với typescript và thấy nó khá hay khi mọi thứ đều có type rõ ràng. Nhưng mà khi mới làm quen như mình, ngoài các cái mình chủ động như int, type, object, class, interface… Làm sao để mình biết được các type khác mà khi cần sử dụng?
Nói đúng hơn làm sao để mình biết để define cho biến đó là type gì vì đến bản thân mình cũng chẳng biết nó là type gì? Như khi click truyển vô event chẳng hạn, làm sao biết event đó là type gì? và quan trọng hơn là làm sao để search ra type của nó để sử dụng cho đúng? Hay là mình đang tiếp cận sai cách nhỉ?

Cảm ơn cả nhà.

1 Like

Ban đầu mình cũng gặp vấn đề này, và cách duy nhất là search google xem type là gì vì chúng ta đang dùng cái có sẵn của người khác. Mình nghĩ nó cũng giống như khi sử dụng các function built-in của một framework có sẵn, phải vào docs đọc xem function này truyền argument gì vào, nó trả về cái gì. Mình cũng gặp khó khăn khi xác định type lúc code react, nextjs với typescript.

4 Likes

Tình trạng này xảy ra là do không học căn bản về lập trình và các thứ liên quan mà nhảy vô viết code quá sớm. Nếu không thích đọc chuyên sâu vì chỉ muốn mau chóng viết code chứ không định làm cái gì đó nền tảng về lập trình, cũng phải đọc xong cuốn “Làm cách nào để suy nghĩ như một nhà khoa học máy tính” để nắm được.

Đâu riêng gì về lập trình, ngay cả một người thiết kế thời trang mới ban đầu đều luôn băn khoăn xem họ nên dùng chất liệu gì, màu nào, phối ra sao để làm nên quần áo <= đây là data type của dân lập trình chứ còn gì nữa. Thợ mộc, thợ hồ, thợ làm bánh,… hoặc ngay cả học sinh cũng đều phải chiến đấu với những cái như này.

Vậy thì chủ topic không thèm nhớ lại thời học sinh anh ta áp dụng công thức nào để làm bài tập? Tại sao không thử dùng cái cách đã từng giúp vượt qua thời học sinh đó vào lập trình? Cách đơn giản nhất với người lười đó là cứ dùng bừa, nó sẽ lỗi toè loe ra rồi sẽ sửa tới sửa lui, đến một ngày sẽ vỗ trán (hoặc mông) kêu chanh chách: Eureka!

Sau khi đọc qua hàng loạt chủ đề do chủ topic tạo ra mình cho rằng cách anh ấy nóng vội muốn làm/ chơi được cái gì đó khá giống dân học chơi nhạc cụ mà dân gian hay gọi là “nhạc rừng” ấy. Nếu đối xử thái độ như vậy với nghề lập trình sẽ khó trở thành một lập trình viên thực thụ, mà cũng chỉ ở mức thợ xào nấu code. Nếu thích mang tư duy chắp vá, manh mún, chọn nghề khác tốt hơn so với viết code. Nghề lập trình là nghề cần tỉ mẩn, bồi đắp ngày tháng chừng chút một và không có “nhảy lăng quăng” đủ thứ mà chẳng nắm cái nào ra cái nào. Mới đầu cảm giác làm được gì đó là nhanh, mở trình viết code lên và làm thực hiện những dòng code bay bướm, nhưng tổng thời gian lại sẽ mất rất lâu so với người kiên nhẫn, bài bản từng chút một. Tại sao mình dám phán bừa như vậy? Tại bản thân mình mất đến 12 năm, trong khi các bạn học chính quy từng chút một chỉ mất 5 năm.

3 Likes

Mình không biện minh, có cái đúng trong các ý của bạn.
Btw, nếu bạn thực sự có nhã ý nhắc nhở mình nên tiếp cận theo hướng từ khác, mình welcome.
Còn việc bạn phán xét mình là người như thế nào. Xin lỗi bạn, đó không phải việc của bạn cũng không phải chủ đề của topic này. Mình chẳng biết bạn đã học những gì và đã trải qua những gì và bạn cũng chẳng biết gì về mình. Bạn ở tầng cao, bạn cứ ở. Bạn tiếp cận code vì một mục đích nào đó, ví dụ là trở thành bậc thầy chẳng hạn. Sao bạn nghĩ mình cũng giống bạn nhỉ?
Cuối cùng, mình thấy bạn comment giúp đỡ khá nhiều, nhưng các lời góp ý với mục đích tôt nhưng theo hướng khó chấp nhận cũng nhiều. Chẳng sao cả, mỗi người một tính, đúng chứ?
Nhưng bạn ạ, chẳng ai thích uống một ly nước nóng trong chiều hè oi bức cả.

1 Like

Các ý khác thì đồng ý với bạn, riêng câu trên thì có lẽ bạn chưa đi du lịch Myanmar :smiley:

Không biết bạn đang code với framework nào, trên IDE nào, chứ lúc mình viết code cho VueJS, trên VS Code, thì khi “bind” một hàm handler với sự kiện click, nếu sai kiểu tham số thì VS Code tô đỏ lòe lên báo lỗi, và khi rê chuột lên thì nó gợi ý tham số phải có kiểu nào thì đúng mà.

2 Likes

Vậy có thể mình config sai hoặc vs code mình lỗi, để mình kiểm tra thử xem sao. Cảm ơn bạn.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?