Typescript裝飾器是一種特殊類型的聲明,可以附加到類聲明、方法、屬性或參數上,以提供元數據和修改類的行為。裝飾器在Typescript中使用@符號進行標記,有四種類型的裝飾器:類裝飾器、屬性裝飾器、方法裝飾器和參數裝飾器。
function classDecorator(target: any) {
// do something with the class
}
@classDecorator
class MyClass {
// class definition
}
function propertyDecorator(target: any, propertyKey: string) {
// do something with the property
}
class MyClass {
@propertyDecorator
myProperty: string;
}
function methodDecorator(target: any, methodName: string, descriptor: PropertyDescriptor) {
// do something with the method
}
class MyClass {
@methodDecorator
myMethod() {
// method definition
}
}
function parameterDecorator(target: any, methodName: string, parameterIndex: number) {
// do something with the parameter
}
class MyClass {
myMethod(@parameterDecorator param1: string, @parameterDecorator param2: number) {
// method definition
}
}
總的來說,Typescript裝飾器提供了一種強大的方式來修改類的行為和添加元數據,可以幫助開發者更好地組織和維護代碼。