GEDOPLAN
Webprogrammierung

TypeScript Magie für Java Entwickler (Level 3)

Webprogrammierung
ts level3 png

Als Fullstackentwickler ist man mit einem bunten Blumenstrauß an Technologien gesegnet. Insbesondere JavaScript und TypeScript ist für viele Java Entwickler erst einmal ungewohntes Terrain. Diese kleine Serie zeigt zumindest einige Features über die der ein oder andere Java Entwickler sicherlich den Kopf schütteln wird (bis er sie lieben gelernt hat 🙂 )

Mehr ist besser, aber bitte einfach: Function Overloads

interface News {
    title?: string
    titleType?: number
    message: string
}

function createNews(message: string): News;
function createNews(message: string, title: string, titleType: number): News;
function createNews(message: string, title?: string, titleType?: number): News {
    return {
        message,
        title,
        titleType
    };
}

createNews("Hello World");
createNews("Hello World", "News-Flash", 2);
// createNews("Hello World", "News-Flash"); // error, die ausimplementierte Funktion ist nicht direkt aufrufbar

Typisierung. Aber immer schön flexibel bleiben: Index Signatures

interface ISOCountryNames {
    [index: string]: string;
    default: string
}

let isoNames: ISOCountryNames = {
    de: 'Deutschland',
    en: 'England',
    default: 'Lummerland'
}

Einmal irgendwas davon: key of

function publishNewsAttribute(news: News, att: keyof News) {
    console.log(news[att]);
}

publishNewsAttribute({} as News, 'message')
publishNewsAttribute({} as News, 'title')
// publishNewsAttribute({} as News, 'was-anderes') // compiler error

Alles davon. Aber anders: Mapped Types

// Mapped Types
type NewsPrintSize = {
    [index in keyof News]: number;
};

const printSizes: NewsPrintSize = {
    message: 12,
    title: 15,
    titleType: 0,
    anders: 22 // compiler error
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Lifecycle-Events der CDI-Scopes

Beim Aktivieren und Deaktivieren von CDI-Scopes sendet der Container Events, die von der Anwendung bspw. zur Initialisierung genutzt werden können.…
IT-Training - GEDOPLAN
Webprogrammierung

Angular, Validatoren

Formulare sind der Kern vieler Businessanwendungen. Neben der Prüfung innerhalb des Backends ist es in aller Regel auch eine Anforderung…
configuration 606356 640
Jakarta EE (Java EE)

Jakarta EE 11 Deployment Descriptors

Dies sind die wichtigsten Deployment-Deskriptoren von Jakarta EE 11: META-INF/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_1.xsd" version="4.1" bean-discovery-mode="all">…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!