TypeScript Notları
  • Giriş
  • Handbook
    • TypeScript nedir, ne işe yarar ?
    • Kurulum ve tsc
    • Temel Tipler
    • any ve unknown
    • Union Type (Çoklu Tipler)
    • Literal Types
    • Objects (Objeler)
    • Arrays (Diziler)
    • Tuple
    • Fonksiyonlar
    • Optional Params (Opsiyonel Parametreler)
    • type
    • interface
    • readonly
    • Generics
    • Modül Yapısı
    • Type Assertion
    • keyof, typeof
    • Mapped Types
    • React ve TypeScript
      • Props Tipleri
      • State Tipleri
      • Event Tipleri
      • useRef
  • Tip and Tricks
    • json2ts
  • Kaynakça
Powered by GitBook
On this page
  1. Handbook

Generics

PreviousreadonlyNextModül Yapısı

Last updated 3 years ago

Dinamik ve yeniden kullanılabilir kod yazmak söz konusu olduğunda Kendini Tekrar Etme (DRY) ilkesine uymak önemlidir. Generic, TypeScript de bunu yapmamızı sağlar.

<type1,type2...typeN> içerisine yapacağımız tip tanımlamaları ile generic tip tanımlamaları yapabiliriz.

Örneklerle açıklamaya çalışalım.

function displayUser<T, U>(name: T, id: U) {
    console.log(`${name} ${id}`)
}

displayUser<string, string>("John", "1");

Fonksiyonumuzun isminin hemen yanında <T,U> şeklinde bir generic görüyoruz. T name tipini, U ise id tipini belirtmektedir. id tipini number yapmak istediğimizde tek yapmamız gereken fonksiyonumuzu çağırdığımız yerdeki generic tipini değiştirmektir.

function displayUser<T, U>(name: T, id: U) {
    console.log(`${name} ${id}`)
}

displayUser<string, number>("John", 1);

Başka bir örnekte ve ile generic kullanımını inceleyebilirsiniz.

interface Fullname<T, U> {
    (name: T, surname: U):void
}

type Name = "ahmet" | "fatih";
type Surname = "yavasi";

const getFullName: Fullname<Name, Surname> = (name: Name, surname: Surname) => {
    console.log(`${name} + ${surname}`)
}

getFullName('ahmet','yavasi')

interface
type