ප්‍රධාන පිටුවට

මොඩියුලය 2: TypeScript මූලධර්ම (TypeScript Fundamentals)

Angular යෙදුම් ගොඩනැගෙන්නේ TypeScript මතයි. මෙම කොටසේදී, Angular සඳහා අවශ්‍ය වන TypeScript හි මූලික සංකල්ප ඉගෙන ගනිමු.

Types, Interfaces, Classes සහ Modules

Types (වර්ග): TypeScript මගින් විචල්‍යයන් (variables) සඳහා නිශ්චිත වර්ගයක් (type) ලබා දීමට ඉඩ සලසයි. මෙය කේතයේ දෝෂ අඩු කිරීමට උපකාරී වේ.

let studentName: string = "නිමල්";
let age: number = 25;
let isRegistered: boolean = true;

Interfaces (අතුරුමුහුණත්): Interface එකක් යනු object එකක ව්‍යුහය (structure) නිර්වචනය කරන ගිවිසුමක් වැනිය.

interface User {
    id: number;
    name: string;
    email?: string; // '?' means optional
}

let user: User = { id: 1, name: "කමලා" };

Classes (පන්ති): Classes යනු objects සෑදීම සඳහා වන සැකිලි (blueprints) වේ. ඒවාට properties (ගුණාංග) සහ methods (ක්‍රම) අඩංගු විය හැක.

class Person {
    name: string;

    constructor(name: string) {
        this.name = name;
    }

    greet() {
        console.log(`Hello, my name is ${this.name}`);
    }
}

const p = new Person("සුනිල්");
p.greet(); // "Hello, my name is සුනිල්"

Generics, Decorators, සහ Enums

Generics (ජෙනරික්ස්): විවිධ වර්ගයේ දත්ත සමඟ නැවත භාවිත කළ හැකි components සෑදීමට Generics ඉඩ සලසයි.

function getFirstElement<T>(arr: T[]): T {
    return arr[0];
}

let firstNumber = getFirstElement([1, 2, 3]); // Type is number
let firstString = getFirstElement(["a", "b", "c"]); // Type is string

Decorators (ඩෙකරේටර්): Decorators යනු classes, methods, හෝ properties වලට අමතර ක්‍රියාකාරීත්වයක් එක් කරන විශේෂ functions වේ. Angular හි @Component, @Injectable වැනි Decorators බහුලව භාවිතා වේ.

// Example of a decorator (conceptual)
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent { ... }

Enums (එනුම්): Enum එකක් මගින් නමක් සහිත නියතයන් (named constants) සමූහයක් නිර්වචනය කළ හැක.

enum UserRole {
    ADMIN,
    EDITOR,
    GUEST
}

let role: UserRole = UserRole.ADMIN;

Type Inference සහ අනෙකුත් සංකල්ප

Type Inference (වර්ග අනුමිතිය): ඔබ විචල්‍යයකට අගයක් ලබා දෙන විට, TypeScript හට එහි වර්ගය අනුමාන කළ හැක. එබැවින් සෑම විටම වර්ගය සඳහන් කිරීම අනිවාර්ය නොවේ.

let message = "Hello World"; // TypeScript knows this is a string

Optional Chaining (`?.`): Object එකක property එකක් null හෝ undefined විය හැකි නම්, දෝෂයක් ඇති නොවී එයට ආරක්ෂිතව පිවිසීමට මෙය භාවිතා කරයි.

const user = { name: "Saman" };
console.log(user.address?.street); // Returns undefined instead of an error
« පෙර (මොඩියුලය 1) ඊළඟ (මොඩියුලය 3) »