6 Ekim 2020 Salı

TypeScript Function Tanımlama

Function Tanımlama
Parametrenin tipi parametre isminden sonra myparameter : string şeklinde yazılır. Function sonuç dönüyorsa yine kapanış parantezinden sonra ): string şeklinde yazılır.

Örnek - const f = {...} Şeklinde
Şöyle yaparız. string veya null dönebilir.
const getErrorTextIfPresent = (r: ValidationResult): string | null => {
  return r.isValid ? null : r.errorText;
}
Örnek
Şöyle yaparız
function reverse(word:string):string{
  ...
}
Örnek  - Optional Parametreler
Optional parametrelerle tanımlamak için şöyle yaparız
function greet(firstName?: string, lastName?: string) {
  if (fistName && lastName) console.log(`Hello, ${firstName} ${lastName}!`)
  else console.log('Hello, World!')
}

greet('John', 'Doe') // Hello, John Doe!
greet() // Hello, World!
greet('John') // Invalid
Örnek - Generics
Şöyle yaparız. Nesnenin üye alanlarının ismini değiştirir. Alan ismi başına "old" getirilir.
type PrefixAll<T, P extends string>  = {
    [K in keyof T & string as `${P}${K}`]: T[K]
}

function prefixProperties<T, P extends string>(obj: T, prefix: P): PrefixAll<T, P> {
    let out = {} as Record<string, unknown>;
    for (let propt in obj) {
        out[prefix + propt] = obj[propt];
      }
    return out as PrefixAll<T, P>;
}

let x : { num: number, date: Date } = { ... };
let y = prefixProperties(x, 'old');

y.olddate
y.oldnum
Örnek
Prototype ile tanımlamak için şöyle yaparız
type Greet = {
     (firstName: string, lastName: string): void;
     (): void;
};
const greet: Greet = (firstName?: string, lastName?: string) => {
  if (firstName && lastName) console.log(`Hello, ${firstName} ${lastName}!`)
  else console.log('Hello, World!')
};

greet('John', 'Doe'); // Hello, John Doe!
greet(); // Hello, World!
greet('John'); // Hello World!

Hiç yorum yok:

Yorum Gönder