The @Component({}) line in a component .ts file is referred to as a Decorator. Is this in relation to the Decorator Pattern, or are they unrelated?
Is the Typescript @Component "Decorator" related to the decorator pattern?
1k Views Asked by Kevin Paul Tracy At
2
There are 2 best solutions below
0
Kokodoko
On
They are related, since you decorate an existing class with additional functionality. They are not the same, because the typescript @Decorator is applied at compile time, while the decorator pattern can also be used to decorate a class at runtime, for example:
let armoredenemy = new Armored(new Enemy())
let enemy = new Enemy()
While the program is running, you can still decide if you want to decorate a class or not.
Related Questions in ANGULAR
- Is it possible to use ES5 JavaScript with Angular 2 instead of TypeScript?
- Module '"angular2/angular2"' has no exported member 'For'
- import syntax in typescript creating another js file in visual studio
- Separate ts file for imports
- How to use an AngularJS 2 component multiple times in the same page?
- injectables not working in angular 2.0 latest build 26
- Does angular2 bootstrap have a way to dynamically target elements like it does in angular 1.x
- Import {} from location is not found in VS Code using TypeScript and Angular 2
- Angular 2/Typescript: require not found
- ng-switch in Angular2
- Angular 2 import issue: "Zone already exported on window the object!"
- How to make FileReader work with Angular2?
- Writing the most basic Unit test in Angular 2?
- Angular2: Creating child components programmatically
- AngularJS - TypeError: Cannot read property 'canonicalUrl' of undefined
Related Questions in TYPESCRIPT
- Use translateProvider.useLoader with Typescript
- Optional method in base class
- Putting Lambdas in OR statement
- Deleting namespace in Socket IO
- Angularjs+Typescript directive implementing $compile
- Typescript type inference inside for loop
- Why void functions are allowed in left part of assignment in Typescript?
- Tools for Apache Cordova - TypeScript debugger jumps to wrong line
- Typescript - is there a way to specify a global reference?
- How to angularjs app.service and $q in typescript
- include typescript file in output result build with TFS
- Mocking Angular $window in unit test cases
- Difference between `share()` and `publish().refCount()`
- TypeScript: workaround for relative reference path?
- How to define knex migrations using Typescript
Related Questions in DECORATOR
- Decorated class looses acces to its attributes
- Autofac constructor chaining
- Python decorator pattern: reducing code duplication involving inner functions and functools.wraps
- Define filter for DecorateAllWith() method in structure-map 3
- Understanding decorators: return type is a function when argument not specified
- "is not abstract and does not override abstract method java" using Decorator Pattern
- DependencyResolutionException Circular component dependency detected: How to use Autofac to inject decorator?
- Call a python variable that runs a function which returns a variable for the original python variable
- How to use Autofac to inject decorator of a class in one constructor and the class itself in another?
- How to add attribute to python *class* that is _not_ inherited?
- Rate-limiting python decorator
- python wrapper function taking arguments inside decorator
- Simple Injector decoration with additional dependency
- parse python functions as a string within decorator
- How to test if a view is decorated with "login_required" (Django)
Related Questions in ANGULAR-DECORATOR
- How to decorate $modalInstance in Angular
- How to debug Angular Service which doesn't inject [construct] itself?
- How to disable typing but allow copy and paste in a text box in Angular 8?
- ERROR TypeError: Cannot read property 'seatsavailable' of undefined
- How does an angular component class get instantiated?
- Create custom decorator in angular
- Getting error in Passing multiple data from parent to child component in Angular
- Is the Typescript @Component "Decorator" related to the decorator pattern?
- How to intercept convenience shortcuts of $http in AngularJS
- How to extend angular @input decorator?
- Angular promise handling decorator on an async method
- Angular Create multiple components using ComponentFactoryResolver
- Emit an event dynamically in angular
- Base class for component with a decorated method is not being picked up in the component that inherits from it
- Decorating Angular-UI Bootstrap modal
Related Questions in TYPESCRIPT-DECORATOR
- Can I get the names of variables in the decorator method?
- Creating TypeScript class decorator for log correlation
- Typescript Method Decorator has Strange Behaviour
- Typescript 5 class decorators add inherited class to MyClass
- Custom class decorator TypeORM (decorator in decorator)
- Is it possible to add new attributes (orient-object paradigm style) using decorators in Typescript?
- Can't use TS/JS decorators with jsbundling/esbuild on Rails
- Setter / Getter property not getting logged when using Decorators
- Use ESBuild plugins for decorators with NX
- Make tsyringe decorators works with Vite
- How to give typescript compiler hints for dynamically defined property to a class
- Add a class property using a decorator in TypeScript
- gulp / rollup / typescript — __decorate is not defined
- Question about typing decorators in TypeScript
- Can a TypeScript decorator function detect it is being invoked as a decorator?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Typescript decorator:
It’s compile time. It’s one time but permanent change, as the class that get decorated is different from the original class. And it's simple, basically just a function.
The common scenario is one decorator apply on different classes. For example: in Angular , the @injector decorator apply on various classes and make them injectable.
For the general decorator pattern:
The common scenario is different decorators on one single class. It’s pretty heavy-lifting. You need to create decorator class, common parent class for decorator class and original class, and different child decorator classes. The original class remains unchanged and you can apply decorator as see fit during run time.
Example: you have a coffee class. You can create different decorator classes: Espresso , Cappuccino, even expresso + Cappuccino coffee if you want.
Just my 2 cents.