TypeScript හි protected මාරු කරන්නා

පුද්ගලික ගුණාංග සහ ක්‍රම උරුමයට නොලැබේ. කෙසේ වෙතත්, සමහර විට අපට අවශ්‍ය වන්නේ ගුණාංගයක් හෝ ක්‍රමයක් බාහිරව ප්‍රවේශ වීමට නොහැකි වන නමුත් දරුවන්ට උරුම වී ඇති බවයි. මෙම සිද්ධියේදී, protected මාරු කරන්නා protected භාවිතා කළ යුතුය.

අපි ප්‍රායෝගිකව උත්සාහ කරමු. අපේ වර්ගයේ User ක්‍රමය cape මාරු කරන්නා protected භාවිතයෙන් ආරක්ෂිත කරන්න:

typescriptclass User {
  protected cape(str: string) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

වර්ගය Student සාදන්න, උරුම වන්නේ වර්ගය User වෙතින්:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
}

නම පෙන්වන ක්‍රමයක් එකතු කරන්න:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.name;
  }
}

දැන් දරු ක්‍රමය තුළ ප්‍රධාන ක්‍රමයේ ආරක්ෂිත ක්‍රමය භාවිතා කරන්න:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.cape(this.name); // ප්‍රධාන ක්‍රමය භාවිතා කරන්න
  }
}

අපේ වර්ගයේ වස්තුවක් සාදන්න:

typescriptlet student: Student = new Student('john');

ශිෂ්‍යයා පෙන්වීම සඳහා ක්‍රමය භාවිතා කරන්න:

typescriptconsole.log(student.showName());

කෙසේ වෙතත්, ක්‍රමය cape ඇමතීමට උත්සාහ කිරීම වර්ගයෙන් පිටත දෝෂයක් ඇති කරයි:

typescriptconsole.log(student.cape('test')); // දෝෂය
Задание 1

පහත වර්ගය ලබා දී ඇත:

typescriptclass User {
  protected name: string;
  protected surn: string;
  
  constructor(name: string, surn: string) {
    this.name = name;
    this.surn = surn;
  }
}

මෙම වර්ගයෙන් වර්ගය Employee උරුම කර ගන්න, එය ආරක්ෂිත ගුණාංගය salary එකතු කරයි, සහ තමන්ගේම සහ උරුම වූ සියලුම ගුණාංගවල ගෙට්ටර් ද, එකතු කරයි.