¿Qué son las interfaces y explicarlas en referencia a Typescript?

TypeScript es un lenguaje de programación de código abierto. Es un superconjunto del lenguaje JavaScript. Type-Script está diseñado para el desarrollo de aplicaciones grandes. Es desarrollado y mantenido por Microsoft. TypeScript sigue JavaScript sintácticamente pero le agrega más funciones. Es un superconjunto de JavaScript.

Interfaz: En general, la interfaz es la estructura o esqueleto de un objeto. La interfaz es una sintaxis de programación que impone la sintaxis en la clase. Es la definición del objeto con solo los tipos de datos que debe tener. La interfaz es el tipo del objeto.

La interfaz en TypeScript es tipos para el objeto. En Type-Script, la interfaz se define con la ayuda de la palabra clave de interfaz. JavaScript utiliza una interfaz para la verificación de tipos. La interfaz también se conoce como subtipado estructural.

Sintaxis:

interface InterfaceName{
    PropertyName: Type;
    methodName() => Type;
} 

Ejemplo:

Javascript

// Interface for Array
interface ForList {
    [index:number]: string
}
let newArray: ForList = ["Interface", "for", "Array"];
console.log(newArray);

Producción:

[ 'Interface', 'for', 'Array' ]

En la interfaz Geek anterior, tenemos dos propiedades, puntuación y artículos, lo que significa que cuando usamos la interfaz para crear el objeto, debe contener estas dos propiedades. Hay muchas propiedades de la interfaz proporcionadas en Typescript. Veamos algunas de las propiedades de las interfaces.

Propiedad de extensión: la interfaz TypeScript proporciona una propiedad de extensión de la interfaz que permite volver a escribir la interfaz existente de nueva propiedad.

interface For_Array {
    var1:  string;
}
interface For_List extends For_Array {
    var2: string;
}

Aquí, la interfaz de lista contiene la propiedad var2 y extiende la propiedad var1 de la propiedad For_Array.

Propiedades de solo lectura: esta es una propiedad de seguridad de la interfaz que hace que la interfaz no se pueda cambiar. Podemos hacer que cualquier propiedad sea de solo lectura con solo lectura antes de la propiedad.

interface For_class{
    readonly name: string;
    id: number;                          
}

Aquí, dado que marcamos solo lectura para el nombre, así que después de asignar el valor al nombre, no podemos cambiar el valor del mismo.

Propiedades opcionales: esta propiedad hace que la interfaz sea más útil si no tenemos claro que debemos agregar una propiedad en la estructura de cualquier objeto. En ese caso, podemos hacer que esa propiedad sea opcional para que no sea solo en estructura. Podemos hacer opcional con el ? símbolo.

interface For_function {
    (key: string, value ?: string) : void ;
}

Aquí la propiedad de valor es opcional, por lo que, cuando creamos la función con esta interfaz, puede contener o no el parámetro de valor.

Ejemplo: la interfaz es generalmente tipos para tipos de datos grandes y para funciones. Veamos la interfaz para diferentes tipos en el siguiente código.

Javascript

// Interface for Function
interface ForFunc {
    (key:string,value?:string):void;
}
 
function Pri(key:string):void{
    console.log(key+" for "+value)
}
let newFunc: ForFunc = Pri;
newFunc("Interface","Function")
 
// Interface for Class
// Interface for Class
interface ForClass {
    readonly var1:string;              
}
interface ForList extends ForClass{
    var2:string;
    var3:string;
}
let newclass: ForList = {
    var1: "Interface",
    var2: "for",
    var3: "Array"
};
 
console.log(newclass);

Para compilar código TypeScript podemos ejecutar el siguiente comando en la línea de comandos.

tsc Interface_Example.ts

Este comando generará un archivo JavaScript con el nombre Interface_Example.js

Ejecute el archivo JavaScript usando el siguiente comando en la línea de comando.

node Interface_Example.js

Producción:

Interface for Function
{ var1: 'Interface', var2: 'for', var3: 'Array' }

Publicación traducida automáticamente

Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *