Pregunta de entrevista-TS (3): ¿Qué es la interfaz en TypeScript? ¿Qué hacen?

Pregunta de entrevista-TS(3): ¿Qué es una interfaz en TypeScript? ¿Qué hacen?

En TypeScript, una interfaz es una herramienta para definir las propiedades y el comportamiento de los objetos. Actúan como un contrato entre código, describiendo qué propiedades y métodos debe tener un objeto. Mediante el uso de interfaces, podemos proporcionar una mejor verificación de tipos, modularidad y reutilización de código.

1. Definición y uso de la interfaz

En TypeScript, usamos palabras clave interfacepara definir interfaces. Aquí hay un ejemplo de una definición de interfaz simple:

interface Person {
    
    
  name: string;
  age: number;
  greet(): void;
}

En el ejemplo anterior, definimos una Personinterfaz llamada , que requiere que los objetos tengan namepropiedades age, y tiene un greetmétodo llamado .

Las interfaces se pueden usar para definir la forma de un objeto, y luego podemos usar esa interfaz como una anotación de tipo para garantizar que los objetos que creamos se ajusten a esa forma. Por ejemplo:

let person: Person = {
    
    
  name: "John",
  age: 25,
  greet() {
    
    
    console.log(`Hello, my name is ${
      
      this.name}. I'm ${
      
      this.age} years old.`);
  }
};

person.greet();  // 输出:Hello, my name is John. I'm 25 years old.

Mediante el uso de interfaces, podemos especificar explícitamente la estructura y el comportamiento de los objetos, lo que facilita la comprensión y el mantenimiento del código. Si nuestro objeto no se ajusta a la forma definida por la interfaz, el compilador de TypeScript emitirá una advertencia de error de tipo.

2. Atributos opcionales y de solo lectura

Las propiedades en una interfaz pueden ser opcionales, es decir, pueden estar presentes o ausentes en el objeto. Podemos definir propiedades opcionales agregando un signo de interrogación (?) después del nombre de la propiedad. Por ejemplo:

interface Person {
    
    
  name: string;
  age?: number;
}

En el ejemplo anterior, agela propiedad es opcional, es decir, puede o no estar presente en el objeto.

Además, las propiedades en una interfaz pueden ser de solo lectura, es decir, su valor no se puede modificar después de que se haya creado el objeto. readonlyPodemos definir propiedades de solo lectura anteponiendo el nombre de la propiedad con una palabra clave. Por ejemplo:

interface Point {
    
    
  readonly x: number;
  readonly y: number;
}

En el ejemplo anterior, xlas ypropiedades y son de solo lectura y sus valores no se pueden cambiar una vez que se crea el objeto.

3. Herencia de interfaz

En TypeScript, las interfaces pueden ampliar su definición al heredar de otras interfaces. Mediante el uso de palabras clave extends, podemos crear una interfaz que herede de otra interfaz. Esto nos permite reutilizar y componer definiciones de otras interfaces dentro de una interfaz. Por ejemplo:

interface Shape {
    
    
  calculateArea(): number;
}

interface Rectangle extends Shape {
    
    
  width: number;
  height: number;
}

En el ejemplo anterior, Rectanglela interfaz hereda de Shapela interfaz, requiere widthpropiedades heighte implementa calculateAreamétodos.

A través de la herencia de interfaz, podemos crear interfaces más específicas y complejas, mejorando la reutilización y modularidad del código.

4. Implementación de interfaz y polimorfismo.

En TypeScript, las interfaces se pueden usar no solo para describir la forma de un objeto, sino también para restringir la implementación de una clase. Cuando una clase implementa una interfaz, debe cumplir con todos los requisitos definidos por la interfaz.

Por ejemplo, definimos una interfaz Animal:

interface Animal {
    
    
  makeSound(): void;
}

Luego, podemos crear una clase que implemente Animalla interfaz Dog:

class Dog implements Animal {
    
    
  makeSound() {
    
    
    console.log("Woof!");
  }
}

Al implementar Animaluna interfaz, Doguna clase debe implementar makeSoundmétodos. De esta forma, podemos usar el polimorfismo para tratar con un grupo de objetos que implementan la misma interfaz. Por ejemplo:

function performSound(animal: Animal) {
    
    
  animal.makeSound();
}

let dog = new Dog();
performSound(dog);  // 输出:Woof!

A través de la implementación de la interfaz y el polimorfismo, podemos escribir código más flexible y extensible.

Resumir

En TypeScript, las interfaces son una poderosa herramienta para definir la forma y el comportamiento de los objetos. Mediante el uso de interfaces, podemos proporcionar una mejor verificación de tipos, modularidad y reutilización de código. Las interfaces pueden definir las propiedades y los métodos de un objeto, pueden contener propiedades opcionales y de solo lectura, y pueden crear relaciones más complejas entre interfaces y clases a través de la herencia y la implementación.

En el proceso de desarrollo, el uso razonable de las interfaces puede ayudarnos a escribir código más confiable, mantenible y extensible. Al definir claramente los contratos entre el código, podemos organizar y administrar mejor el código y reducir posibles errores. Aprovechemos al máximo las ventajas de las interfaces en TypeScript para mejorar nuestra eficiencia de desarrollo y la calidad del código.

Supongo que te gusta

Origin blog.csdn.net/weixin_42560424/article/details/131912762
Recomendado
Clasificación