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 🙂 )
Generics? JaJa…die haben wir doch auch in TypeScript: Generics
function search<T>(query: T, items: T[]): T[] | T {
return items.filter(i => i === query)
}
Oller Hut? TypeSkript bleibt flexibel: Generic Constraints (Type Parameters)
function avgAge<T extends { age: number }>(items: T[]): number {
const ages = items.map(itm => itm.age);
return ages.reduce((a, b) => a + b, 0) / ages.length
}
1,2,3…gib mir so viel du hast: Rest Parameter
function createMultiMessageNews(title: string, ...messages: string[]) {
// impl
}
createMultiMessageNews('News-Flash', 'Hello')
createMultiMessageNews('News-Flash', 'Hello', 'World')
Handwerklich begabt: Destructuring
// Parameter Destructuring
function postMessage1({title, message}: News) {
console.log(title);
console.log(message);
}
//Object Destructing
function postMessage2(news: News) {
const {title, message} = {...news};
console.log(title);
console.log(message);
}
// Array Destructing
function postFirstMessage(news: News[]) {
const [publishNews, ...rest] = [...news]
console.log(publishNews)
}
// harmoniert mit dem oben genannten Rest Parameter
createMultiMessageNews('News-Flash', ...['Hello', 'World'])
Wie Weihnachten. Ein- und Aus-packen: Spreading
let objectA = {a: 'a'};
let objectB = {b: 'b'};
let objectABC = {...objectA, ...objectB, c: 'c'};