Class - Contains the code required for template. Just like a class in any object oriented programming language like C# or Java, a class in angular can contain methods and properties. Properties contain the data that we want to display in the view template and methods contain the logic for the view. We use TypeScript to create the class.

Decorator - We use the Component decorator provided by Angular to add metadata to the class. A class becomes an Angular component, when it is decorated with the Component decorator.

Component Example : In Part 2 of Angular 2 tutorial, we have downloaded quick start files from the Angular Website. One of the files in these quick start files, is the app.component.ts file. You can find this file in the "app" folder. This file contain a component. The name of the component is AppComponent. The AppComponent is the root component of the application. I have commented the code in the following example and it should be self-explanatory. If it's not, please watch the video by clicking here.

//
Component decorator is provided by the Angular core library, so we

// have
to import it before using it. The import keyword is similar to

// using
keyword in C#. Any exported member can be imported using import

//
keyowrd.

import { Component } from'@angular/core';

// The
class is decorated with Component decorator which adds metadata

// to the
class. We use the @ symbol to apply a decorator to the class

//
Applying a decorator on a class is similar to applying an attribute

// to a
class in C# or other programming languages. Component is just

// one of
the deveral built-in decorators provided by angular. We will

//
discuss the other decorators provided by angular in upcoming videos

// export
keyword allows this class to be exported, so other components

// in the
application can import and use it if required

exportclass
AppComponent {

// name is a
property and the data type is string and

// has a
default value "angular"

name: string = 'Angular';

}

Notice in the index.html page, we have used the AppComponent using the directive <my-app>. At runtime <my-app> directive is replaced with the HTML we specified using the selector property in the component decorator.

When we build the project in Visual Studio TypeScript is compiled to JavaScript which the browser understands and renders. Our TypeScript code for this component is present in app.component.ts file. Notice a corresponding app.component.js is file is generated on build. To see the generated .js file click on show-all-files icon in solution explorer. Besides .js files, there are several other files. We will discuss what these files are, their purpose and how angular application bootstraps itself using these files in our upcoming videos.