Trong 1 class
, type
hoặc interface
, nếu 1 thuộc tính không bao giờ thay đổi thì ta có thể sử dụng.
Khi 1 thuộc tính được đinh nghĩa là readonly
và được gán lại bằng 1 giá trị khác thì ngay tại bước coding,
thì Compiler của TypeScript sẽ báo lỗi không thể gán giá trị mới cho thuộc tính này
.
error TS2540: Cannot assign to XXX because it is a constant or a read-only property.
Khi muốn khởi tạo giá trị cho thuộc tính này, thì ta có thể khởi tạo ở chỗ khai báo thuộc tính hoặc bên trong constructor
của class
.
Ví dụ trong 1 component có thuộc tính:
Ví dụ về khởi tạo giá trị trong constructor
của class
:
Mã nhân viên code
nếu thay đổi thì không thể định danh đó làm nhân viên nào được.
Ví dụ về thuộc tính readonly
của interface
:
Ví dụ về thuộc tính readonly
của type
:
Chú ý là với cách tạo Readonly
với type
như trên thì tất cả các thuộc tính của type
đêu là readonly
.
Như vậy có 3 cách tạo ra 1 object có thuộc tính không được thay đổi
tính từ lúc giá trị của nó được khởi tạo.
Việc dùng readonly
chỉ nhằm mục đích tránh những nhầm lẫn về logic, như việc đáng ra nó là biến không được thay đổi nhưng lại bị gán lại chẳng hạn.
Thế nên việc sử dụng là hoàn toàn tùy tâm, không dùng cũng chẳng sao.
Chính bởi vậy nên tôi thấy trong dự án của mình, tôi thấy mọi người rất ít dùng.
Photo by Roman Kraft on Unsplash
Đây là bài viết của tôi trên blog cá nhân.
Quick Links
Social Media