TypeScript đã thắng. Và đây là những gì chúng ta nhận được.
Cuộc tranh luận đã kết thúc. TypeScript đã thắng. Các dự án mới hiện nay mặc định sử dụng nó.
Mục tiêu ban đầu là để bắt các lỗi đánh máy trước khi chúng làm hỏng mã nguồn của bạn. Nhưng giá trị thực sự còn lớn hơn thế nhiều.
Các kiểu dữ liệu đóng vai trò như một tài liệu không bao giờ bị lỗi thời. Chữ ký hàm (function signature) cho bạn biết chính xác những gì cần gửi đi và những gì nhận lại. Nếu bạn thêm một tùy chọn mới vào một danh sách, trình biên dịch sẽ buộc bạn phải cập nhật mọi phần trong mã nguồn của mình. Một dòng chú thích (comment) thì sẽ chỉ nằm đó và đánh lừa bạn.
Việc refactoring trở nên an toàn hơn. Trong mã JavaScript cũ, việc đổi tên một trường (field) giống như một canh bạc. Bạn phải tìm kiếm các chuỗi ký tự và hy vọng điều tốt đẹp nhất sẽ đến. Với TypeScript, bạn chỉ cần thay đổi kiểu dữ liệu và trình biên dịch sẽ cung cấp cho bạn một danh sách các dòng bị lỗi cần xử lý. Refactoring không còn đáng sợ nữa. Nó chỉ đơn thuần là một tác vụ.
Các kiểu dữ liệu cũng giúp các trợ lý AI trở nên tốt hơn.
Nếu bạn yêu cầu AI chỉnh sửa JavaScript không có kiểu dữ liệu, nó sẽ phải đoán cấu trúc. Nếu bạn dùng TypeScript, kiểu dữ liệu chính là bản đặc tả. AI sẽ biết điều gì được phép thực hiện. Nếu AI mắc lỗi, trình biên dịch sẽ phát hiện ngay lập tức. Bạn sẽ không gặp phải tình trạng sập hệ thống (production crash) lúc 2 giờ sáng. Thay vào đó, bạn sẽ thấy một dòng kẻ đỏ trong trình soạn thảo của mình.
Kiểu dữ liệu không làm bạn chậm lại. Trong thế giới AI, chúng giúp bạn tăng tốc. Chúng đóng vai trò như những rào chắn (guardrails) để bạn có thể tin tưởng vào mã nguồn được tạo ra.
Hãy viết các kiểu dữ liệu với mục đích rõ ràng:
• Sử dụng union thay vì nhiều biến boolean. Một trạng thái như "loading" | "error" | "ready" sẽ tốt hơn là ba biến cờ (flags) có thể mâu thuẫn lẫn nhau.
• Đặt tên cho các kiểu dữ liệu nghiệp vụ (domain types). Hãy dùng "type Cents = number" để thể hiện ý định của bạn.
• Tránh dùng "any". Thay vào đó, hãy dùng "unknown" và thu hẹp kiểu dữ liệu (narrow it down). "any" tạo ra một lỗ hổng trong lưới an toàn của bạn.
• Hãy để cơ chế suy luận (inference) hoạt động. Bạn không cần phải khai báo kiểu cho mọi thứ. Hãy khai báo tại các ranh giới như chữ ký hàm và để phần còn lại tự động trôi theo.
TypeScript không chỉ dừng lại ở việc bắt lỗi đánh máy. Nó đã tạo ra các hợp đồng (contracts) được thực thi nghiêm ngặt. Những hợp đồng này cho phép refactoring một cách không sợ hãi và giúp các công cụ AI trở nên đáng tin cậy hơn.
Chúng ta bắt đầu sử dụng kiểu dữ liệu để ngăn chặn lỗi. Chúng ta tiếp tục sử dụng chúng vì chúng là nền tảng cho mọi thứ khác.
Nguồn: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
