Kısa Giriş
TypeScript, JavaScript'in bir superset'idir ve JavaScript'in üzerine inşa edilmiştir. Önce TypeScript kodunu yazarsınız. Ardından bir TypeScript compiler kullanarak TypeScript kodunu düz JavaScript koduna compile edersiniz. Düz JavaScript kodunu elde ettiğinizde, JavaScript'in çalıştığı herhangi bir ortama deploy edebilirsiniz.
TypeScript dosyaları, JavaScript dosyalarının .js uzantısı yerine .ts uzantısını kullanır.

TypeScript, JavaScript syntax'ını kullanır ve type desteği sağlamak için ek syntax'lar sunar.
Temel Type'lar
TypeScript'in temel primitive type'ları şunlardır: number, string, boolean, any.
Array ve Tuple'lar
Array type'ları iki farklı biçimde yazılabilir: Array
TypeScript tuple'ları, sabit sayıda element içeren array'lerdir.
Union ve Enum
Union, içinde yer alan type'lardan herhangi biri olabilen bir type'tır.
Enum, adlandırılmış sabitlerden oluşan bir küme tanımlamanın yoludur. Üç enum türü vardır: Numeric, String ve Heterogeneous. Herhangi bir değer verilmediğinde değerler sırasıyla 0, 1, 2, 3 olarak atanır.
Object'ler
Burada type yerine interface de kullanılabilir. Aralarında belirli farklar vardır ve gereksinime göre doğru olan tercih edilmelidir.
Type Assertion
Type Assertion, bir değerin belirli bir type'a sahip olduğunu compiler'a bildirmenin yoludur. TypeScript'i JSX ile kullanırken yalnızca as biçimindeki assertion'lara izin verilir.
Function'lar
Interface'ler
Interface'ler, bir object'in yapısını tanımlamanın yoludur.
Function Interface'i
Function interface'leri, bir function'ın yapısını tanımlamak için kullanılır.
Class'lar ve Erişim Belirleyicileri
Class'lar, bir object'i temsil eden type'ı tanımlamanın yoludur. Erişim belirleyicileri, bir object'in verilerine erişimi düzenlemek için kullanılır.
Bir Class'ta Interface Uygulama
Class'ları Genişletme (Subclass'lar)
Generic'ler
Generic'ler, bir object veya function'ın kabul ettiği verinin type'ını belirtmenin yoludur.
Generic'lerle bir useState() function'ı oluşturma:
React ile TypeScript
TypeScript kullanan yeni bir Create React App projesi başlatmak için şu komutu çalıştırabilirsiniz:
./src/App.tsx
./src/Header.tsx