Giải thích cách thức và lý do tại sao chúng ta có thể sử dụng Property decorators trong TypeScript?
Giải thích cách thức và lý do tại sao chúng ta có thể sử dụng Property decorators trong TypeScript?
Trong TypeScript, Property decorators là một tính năng mạnh mẽ cho phép chúng ta thêm metadata hoặc thay đổi hành vi của một property trong một class mà không cần phải sửa đổi code của class đó. Cách thức và lý do sử dụng property decorators có thể được giải thích như sau:
Property decorators là một hàm được gọi tại thời điểm định nghĩa class, không phải tại thời điểm tạo instance từ class. Decorator này nhận vào ít nhất hai tham số: target và propertyKey. Target là prototype của class nếu là instance property, hoặc là chính constructor function của class nếu là static property. PropertyKey là tên của property được decorate.
Ví dụ, một property decorator đơn giản có thể được tạo ra để kiểm tra độ dài tối thiểu của một chuỗi:
function MinLength(length: number) {
return function(target: any, propertyKey: string) {
let value: string;
const getter = function() {
return value;
};
const setter = function(newVal: string) {
if (newVal.length < length) {
throw new Error(`Độ dài của ${propertyKey} phải ít nhất là ${length} ký tự.`);
}
value = newVal;
};
Object.defineProperty(target, propertyKey, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
};
}
Trong ví dụ trên, decorator MinLength
được sử dụng để đảm bảo rằng giá trị của property phải có độ dài tối thiểu nhất định[4].
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào