En TypeScript, hay dos métodos admitidos getter y setter para acceder y establecer los miembros de la clase. El mayor control del método sobre cómo se accede a un miembro en cada objeto.
Métodos de la propiedad de acceso TypeScript:
- getter: Este método viene cuando quieres acceder a cualquier propiedad de un objeto.
- setter: Este método viene cuando quieres cambiar cualquier propiedad de un objeto.
getter: para extraer el valor de una propiedad de acceso de getter variable es el método convencional. Se indica con la palabra clave get , en un objeto literal.
Sintaxis:
get accessName() { // getter, the code executed on getting obj.accessName },
Ejemplo:
javascript
class MyClass { private _with:number = 5; private _height:number = 10; get square() { return this._with * this._height; } } console.log(new MyClass().square);
Producción:
50
Un captador puede ser público, protegido, privado. Es simplemente artificial hacer que algo se comporte como una propiedad o una función. Entonces, obtenga square() y new MyClass().square es lo mismo que square() y new MyClass().square().
Setter: para actualizar el valor de una variable, la propiedad de acceso setter es el método convencional que se utiliza. Se indican mediante la palabra clave set en un objeto literal.
Sintaxis:
set accessName(value) { // the code executed on setting //obj.accessName = value, from setter }
Ejemplo:
javascript
set fullname { const parts = value.split (''); this.partname = firstname[0]; this.partname = firstname[1]; } person fullname = "Hitangshu Agarwal" console.log(person);
producción:
firstname: "Hitangshu" lastname: "Agarwal"
El siguiente ejemplo ilustra claramente el concepto de getter y setter:
Ejemplo:
javascript
const company = { companyName = "GeeksforGeeks", companyTag = "Edutech", // Function that return the Full description // combined both comapnyName and companyTag get full_Desc () { return `${company.companyName} ${company.CompanyTag}` }, // It will return separately companyName and companyTag set full_Desc(value) { const parts = value.split (''); this.partname = companyName[0]; this.partname = CompanyTag[1]; } }; company.full_Desc = "GeeksforGeeks Edutech"; console.log(company);
Producción:
GeeksforGeeks Edutech
Punto a recordar:
- Logramos un control adecuado sobre cómo se accede a un miembro en cada objeto con la ayuda de getter y setter .
- Los descriptores de acceso de TypeScript requieren configurar el compilador para generar ECMAScript 5 o superior, deberíamos requerir el descriptor de acceso de TypeScript. No es compatible por debajo de ECMAScript 5.
- Se asume automáticamente que el acceso con una propiedad get y no set es de solo lectura, sin necesidad de trabajo manual. Esto es útil cuando estamos generando un archivo .d.ts desde nuestro código.