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!