Heim > Web-Frontend > js-Tutorial > Hauptteil

TypeScript: JavaScripts Superhelden-Cape

Susan Sarandon
Freigeben: 2024-10-27 20:45:29
Original
946 Leute haben es durchsucht

TypeScript: JavaScript

Warum Typen zu JavaScript hinzufügen?

Stellen Sie sich Folgendes vor: Sie sind gerade dabei, in JavaScript zu programmieren, als plötzlich „Eigenschaft ‚Name‘ von undefiniert kann nicht gelesen werden.“ Ugh, das haben wir alle schon erlebt! TypeScript ist wie ein Freund, der diese Fehler erkennt, bevor sie passieren.

Die Ursprungsgeschichte

JavaScript ist wie Peter Parker vor dem Spinnenbiss – großes Potenzial, aber anfällig für Unfälle. TypeScript ist der Spinnenbiss, der JavaScript Superkräfte verleiht. Es fügt ein Typsystem hinzu, das hilft, Fehler frühzeitig zu erkennen und Ihren Code zuverlässiger zu machen.

Ihr erstes TypeScript-Abenteuer

Beginnen wir mit einer einfachen JavaScript-Funktion und wandeln sie in TypeScript um:

// JavaScript
function greet(name) {
    return "Hello, " + name + "!";
}
Nach dem Login kopieren

Jetzt fügen wir etwas TypeScript-Magie hinzu:

// TypeScript
function greet(name: string): string {
    return "Hello, " + name + "!";
}
Nach dem Login kopieren

Sehen Sie das: Zeichenfolge? Das ist TypeScript, das uns sagt: „Diese Funktion nimmt einen String und gibt einen String zurück“. Versuchen Sie jetzt Folgendes:

greet(123); // Error: Argument of type 'number' is not assignable to parameter of type 'string'
Nach dem Login kopieren

TypeScript hat uns gerade vor einem möglichen Fehler gerettet! ?

Grundtypen: Ihre neuen Superkräfte

Lassen Sie uns einige grundlegende TypeScript-Typen erkunden:

// Basic types
let heroName: string = "Spider-Man";
let age: number = 25;
let isAvenger: boolean = true;
let powers: string[] = ["web-slinging", "wall-crawling"];

// Object type
let hero: {
    name: string;
    age: number;
    powers: string[];
} = {
    name: "Spider-Man",
    age: 25,
    powers: ["web-slinging", "wall-crawling"]
};
Nach dem Login kopieren

Schnittstellen: Eigene Typen erstellen

Schnittstellen sind wie Baupläne für Objekte. Sie sind sehr nützlich, um die Form Ihrer Daten zu definieren:

interface Hero {
    name: string;
    age: number;
    powers: string[];
    catchPhrase?: string; // Optional property
}

function introduceHero(hero: Hero): void {
    console.log(`I am ${hero.name}, and I'm ${hero.age} years old!`);
    if (hero.catchPhrase) {
        console.log(hero.catchPhrase);
    }
}

const spiderMan: Hero = {
    name: "Spider-Man",
    age: 25,
    powers: ["web-slinging", "wall-crawling"]
};

introduceHero(spiderMan);
Nach dem Login kopieren

Typ-Aliase: Ihre benutzerdefinierten Typen

Manchmal möchten Sie Ihre eigenen Typkombinationen erstellen:

type PowerLevel = 'rookie' | 'intermediate' | 'expert';

interface Hero {
    name: string;
    powerLevel: PowerLevel;
}

const batman: Hero = {
    name: "Batman",
    powerLevel: "expert" // TypeScript will ensure this is one of the allowed values
};
Nach dem Login kopieren

Generika: Die ultimative Flexibilität

Generika sind wie Platzhalter, die Ihren Code wiederverwendbar machen:

function createHeroTeam<T>(members: T[]): T[] {
    return [...members];
}

interface Superhero {
    name: string;
    power: string;
}

interface Villain {
    name: string;
    evilPlan: string;
}

const heroes = createHeroTeam<Superhero>([
    { name: "Iron Man", power: "Technology" },
    { name: "Thor", power: "Lightning" }
]);

const villains = createHeroTeam<Villain>([
    { name: "Thanos", evilPlan: "Collect infinity stones" }
]);
Nach dem Login kopieren

Beispiel aus der Praxis: Eine Todo-App

Lassen Sie uns eine einfache Aufgaben-App mit TypeScript erstellen:

interface Todo {
    id: number;
    title: string;
    completed: boolean;
    dueDate?: Date;
}

class TodoList {
    private todos: Todo[] = [];

    addTodo(title: string, dueDate?: Date): void {
        const todo: Todo = {
            id: Date.now(),
            title,
            completed: false,
            dueDate
        };
        this.todos.push(todo);
    }

    toggleTodo(id: number): void {
        const todo = this.todos.find(t => t.id === id);
        if (todo) {
            todo.completed = !todo.completed;
        }
    }

    getTodos(): Todo[] {
        return this.todos;
    }
}

// Usage
const myTodos = new TodoList();
myTodos.addTodo("Learn TypeScript with baransel.dev");
myTodos.addTodo("Build awesome apps", new Date("2024-10-24"));
Nach dem Login kopieren

TypeScript mit React

TypeScript und React sind wie Erdnussbutter und Gelee. Hier ist ein kurzes Beispiel:

interface Props {
    name: string;
    age: number;
    onSuperPower?: () => void;
}

const HeroCard: React.FC<Props> = ({ name, age, onSuperPower }) => {
    return (
        <div>
            <h2>{name}</h2>
            <p>Age: {age}</p>
            {onSuperPower && (
                <button onClick={onSuperPower}>
                    Activate Super Power!
                </button>
            )}
        </div>
    );
};
Nach dem Login kopieren

Tipps und Tricks

  1. Einfach beginnen: Beginnen Sie mit Grundtypen und fügen Sie nach und nach komplexere hinzu.
  2. Verwenden Sie den Compiler: Der Compiler von TypeScript ist Ihr Freund – achten Sie auf seine Fehler.
  3. Nicht zu viel eingeben: Manchmal ist alles in Ordnung (aber verwenden Sie es sparsam!).
  4. Strikten Modus aktivieren: Fügen Sie „strict“: true zu Ihrer tsconfig.json hinzu, um maximalen Schutz zu gewährleisten.

Häufige Fallstricke und wie man sie behebt

// Problem: Object is possibly 'undefined'
const user = users.find(u => u.id === 123);
console.log(user.name); // Error!

// Solution: Optional chaining
console.log(user?.name);

// Problem: Type assertions
const input = document.getElementById('myInput'); // Type: HTMLElement | null
const value = input.value; // Error!

// Solution: Type assertion or type guard
const value = (input as HTMLInputElement).value;
// or
if (input instanceof HTMLInputElement) {
    const value = input.value;
}
Nach dem Login kopieren

Zusammenfassung

TypeScript mag auf den ersten Blick wie zusätzliche Arbeit erscheinen, aber es ist, als hätte man eine Superkraft, die einem hilft, Fehler zu erkennen, bevor sie auftreten. Fangen Sie klein an, fügen Sie nach und nach weitere Typen hinzu, und bevor Sie es merken, werden Sie sich fragen, wie Sie jemals ohne gelebt haben!

Denken Sie daran:

  • Typen sind deine Freunde
  • Der Compiler ist Ihr Kumpel
  • Übung macht den Meister

Das obige ist der detaillierte Inhalt vonTypeScript: JavaScripts Superhelden-Cape. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!