No TypeScript, as interfaces são uma ferramenta poderosa usada para definir a forma de um objeto. Eles impõem a verificação de tipo, garantindo que os objetos criados sigam uma estrutura específica. Aqui estão vários casos em que interfaces são comumente usadas, juntamente com exemplos:
As interfaces são frequentemente usadas para definir a estrutura de um objeto. Isso garante que qualquer objeto aderido à interface terá propriedades específicas.
interface User { name: string; age: number; email: string; } const user: User = { name: "John Doe", age: 30, email: "[email protected]" };
As interfaces permitem definir propriedades opcionais usando o ? símbolo. Isso significa que o objeto pode ou não ter essas propriedades.
interface Product { id: number; name: string; description?: string; // Optional property } const product: Product = { id: 1, name: "Laptop" };
Você pode definir propriedades como somente leitura, o que significa que elas não podem ser alteradas após serem inicializadas.
interface Config { readonly apiUrl: string; timeout: number; } const config: Config = { apiUrl: "https://api.example.com", timeout: 5000 }; // config.apiUrl = "https://newapi.example.com"; // Error: Cannot assign to 'apiUrl' because it is a read-only property.
As interfaces podem ser usadas para definir a forma das funções, especificando os tipos de parâmetros e o tipo de retorno.
interface Login { (username: string, password: string): boolean; } const login: Login = (username, password) => { return username === "admin" && password === "admin123"; }; console.log(login("admin", "admin123")); // true
As interfaces podem estender outras interfaces, permitindo a criação de tipos complexos combinando os existentes.
interface Person { name: string; age: number; } interface Employee extends Person { employeeId: number; department: string; } const employee: Employee = { name: "Alice", age: 28, employeeId: 12345, department: "Engineering" };
As classes podem implementar interfaces, garantindo que elas sigam a estrutura da interface.
interface Animal { name: string; makeSound(): void; } class Dog implements Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log("Woof! Woof!"); } } const dog = new Dog("Buddy"); dog.makeSound(); // Woof! Woof!
As interfaces podem descrever objetos que possuem propriedades com chaves dinâmicas de um tipo específico.
interface StringArray { [index: number]: string; } const myArray: StringArray = ["Hello", "World"]; console.log(myArray[0]); // Hello
As interfaces podem definir objetos que atuam tanto como uma função quanto como um objeto com propriedades.
interface Counter { (start: number): void; interval: number; reset(): void; } const counter: Counter = (function (start: number) { console.log("Counter started at", start); } as Counter); counter.interval = 1000; counter.reset = () => { console.log("Counter reset"); }; counter(10); console.log(counter.interval); // 1000 counter.reset();
TypeScript permite mesclar várias declarações da mesma interface, o que é útil ao trabalhar com grandes bases de código ou bibliotecas.
interface Box { height: number; width: number; } interface Box { color: string; } const myBox: Box = { height: 20, width: 15, color: "blue" };
As interfaces em TypeScript fornecem uma maneira flexível e poderosa de definir e impor formas de objetos, permitindo uma verificação de tipo forte e um código claro e de fácil manutenção.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3