Explore Library
TypeScriptDecorators & Metadata

70 items

1

Method Decorator Reads Wrong Object

Code Quiz
2

Accessor Decorator Uses value

Code Quiz
3

Property Decorator Has No Descriptor

Code Quiz
4

Parameter Decorator Third Argument

Code Quiz
5

Decorator Factory Not Invoked

Code Quiz
6

Factory Runs Before Application

Code Quiz
7

Stacked Decorators Wrong Order

Code Quiz
8

Class Decorator Argument Count

Code Quiz
9

addInitializer for Auto-Bound Methods

Code Quiz
10

Decorator vs. static Modifier Order

Code Quiz
11

Decorators Only Apply to Classes/Members

Code Quiz
12

Static Member Decorator Target

Code Quiz
13

Method Decorator Must Return Descriptor

Code Quiz
14

Standard Decorator Context Uses name

Code Quiz
15

Standard Decorators Have No Descriptor

Code Quiz
16

getMetadata Needs the Prototype

Code Quiz
17

Parameter Decorator Return Is Ignored

Code Quiz
18

Property Key Can Be a Symbol

Code Quiz
19

Forgotten reflect-metadata Polyfill

Code Quiz
20

Replacement Class Must Extend Original

Code Quiz
21

Decorator Forgets to Return Class

Code Quiz
22

Wrong design:returntype Key

Code Quiz
23

Reading Constructor design:paramtypes

Code Quiz
24

Wrong design:type Key String

Code Quiz
25

Enabling Decorator Support

Code Quiz
26

Missing Metadata Emission Flag

Code Quiz
27

TC39 Decorator Context

Quiz
28

Decorator Evaluation vs Application

Quiz
29

Decorator Factories

Quiz
30

Legacy vs Stage 3 Decorators

Quiz
31

Static vs Instance Targets

Quiz
32

TC39 addInitializer Hook

Quiz
33

Auto-Accessor Decorators

Quiz
34

Enabling Legacy Decorators

Quiz
35

Decorator Return Constraints

Quiz
36

reflect-metadata Library

Quiz
37

emitDecoratorMetadata Flag

Quiz
38

Composing Nested Decorators

Quiz
39

Accessor Decorators

Quiz
40

Method Decorator Arguments

Quiz
41

Class Decorator Return Value

Quiz
42

Property Decorator Arguments

Quiz
43

Parameter Decorator Arguments

Quiz
44

Class Decorator Signature

Quiz
45

Custom Metadata Keys

Quiz
46

design:paramtypes Metadata

Quiz
47

Practical Decorator Use Cases

Flashcard
48

Accessor Decorators

Flashcard
49

Application Order Across Members

Flashcard
50

reflect-metadata Library

Flashcard
51

addInitializer in Stage 3

Flashcard
52

Auto-accessor Keyword

Flashcard
53

Dependency Injection with Metadata

Flashcard
54

design: Metadata Keys

Flashcard
55

Enabling emitDecoratorMetadata

Flashcard
56

Decorator Evaluation Order

Flashcard
57

Property Decorators and Limits

Flashcard
58

PropertyDescriptor in Method Decorators

Flashcard
59

Legacy vs Stage 3 Decorators

Flashcard
60

Enabling experimentalDecorators

Flashcard
61

Reading Metadata

Flashcard
62

Decorator Placement Limits

Flashcard
63

Typing Decorators Generically

Flashcard
64

Stage 3 Decorator Signature

Flashcard
65

Decorator Factories

Flashcard
66

Parameter Decorators

Flashcard
67

Method Decorator Signature

Flashcard
68

Replacing a Constructor

Flashcard
69

Class Decorator Signature

Flashcard
70

Defining Custom Metadata

Flashcard
Code QuizAdvanced

Wrong design:type Key String

A misspelled metadata key returns undefined instead of the property type.

Codetypescript
import "reflect-metadata";
// experimentalDecorators + emitDecoratorMetadata enabled

function track(target: any, key: string) {
  const type = Reflect.getMetadata("design:types", target, key);
  console.log(type.name); // TypeError: Cannot read properties of undefined
}

class Product {
  @track
  price: number;
}

Why does reading the property's type fail?