2016-04-28 09:56:57 +03:00
---
language: TypeScript
contributors:
- ["Philippe Vlérick", "https://github.com/pvlerick"]
translators:
- ["Mustafa Zengin", "http://zengin.github.com"]
filename: learntypescript-tr.ts
lang: tr-tr
---
TypeScript, JavaScript'le yazı lmı ş büyük ölçekli uygulamaları n geliştirilmesini kolaylaştı rmayı hedefleyen bir dildir.
TypeScript, JavaScript'e sı nı flar, modüller, arayüzler, jenerik tipler ve (isteğe bağlı ) static tipleme gibi genel konseptler ekler.
JavaScript, TypeScript'in bir alt kümesidir: Bütün JavaScript kodları geçerli birer TypeScript kodudur ve sorunsuz herhangi bir projeye eklenebilirler. TypeScript derleyici JavaScript kodu üretir.
2024-04-19 07:34:40 +03:00
Bu makale sadece TypeScript'e ait ekstra söz dizimini konu alı r, JavaScript için bkz: [JavaScript ](../javascript/ ).
2016-04-28 09:56:57 +03:00
2024-04-19 07:34:40 +03:00
TypeScript derleyiciyi test etmek için [Playground ](https://www.typescriptlang.org/Playground )'a gidin. Orada otomatik tamamlama ile kod yazabilecek ve üretilen JavaScript'i görebileceksiniz.
2016-04-28 09:56:57 +03:00
2024-04-19 14:34:47 +03:00
```ts
2016-04-28 09:56:57 +03:00
// TypeScript'te üç ana tip vardı r.
var bittiMi: boolean = false;
var satı rlar: number = 42;
var isim: string = "Anders";
// Tipin bilinmediği zamanlar için "Any" tipi
var bilinmiyor: any = 4;
bilinmiyor = "belki de bir string'dir";
bilinmiyor = false; // tamam, boolean olsun
// Kolleksiyon olarak, tipli ve jenerik diziler
var liste: number[] = [1, 2, 3];
// Alternatif olarak jenerik Array tipi
var liste: Array< number > = [1, 2, 3];
// 'enum' tipleri:
enum Renk {Kı rmı zı , Yeşil, Mavi};
var r: Renk = Renk.Yeşil;
// Son olarak, "void" hiç bir şey döndürmeyen fonksiyonlarda kullanı lan tiptir.
function çokFeciBirUyarı (): void {
alert("Ben biraz sinir bozucuyum!");
}
// Fonksiyonlar birinci sı nı f vatandaşlardı r ve "kalı n ok" lambda söz dizimi "=>"
// ve tip çı karı mı kullanı rlar.
// Aşağı da listelenenler birbirinin aynı sı ve derleyici aynı fonksiyon yapı sı nı
// çı karacak ve aynı JavaScript kodunu üretecektir
var f1 = function(i: number): number { return i * i; }
// Döndürülen tip tip çı karı mı yla belirlendi
var f2 = function(i: number) { return i * i; }
var f3 = (i: number): number => { return i * i; }
// Döndürülen tip tip çı karı mı yla belirlendi
var f4 = (i: number) => { return i * i; }
// Döndürülen tip tip çı karı mı yla belirlendi
// Tek satı rlı k yazı mda "return" anahtar kelimesine ihtiyaç yok.
var f5 = (i: number) => i * i;
// Arayüzler yapı saldı r, listelenen özelliklere sahip her şey arayüzle uyumludur.
interface Kişi {
isim: string;
// İsteğe bağlı özellikler "?" ile işaretlenir
yaş?: number;
// Ve fonksiyonlar...
hareketEt(): void;
}
// "Kişi" arayüzünü kullanan bir nesne
// isim ve hareketEt özelliklerine sahip olduğu için Kişi olarak kullanı labilir.
var p: Kişi = { isim: "Anders", hareketEt: () => {} };
// İsteğe bağlı özelliğe sahip bir Kişi
var geçerliKişi: Kişi = { isim: "Anders", yaş: 42, hareketEt: () => {} };
// Geçersiz bir kişi, çünkü yaş bir sayı (number) tipi değil
var geçersizKişi: Kişi = { isim: "Anders", yaş: true };
// Arayüzler bir fonksiyon tipi de ifade edebilirler
interface aramaFonksiyonu {
(kaynak: string, altString: string): boolean;
}
// Parametrelerin sadece tipleri önemli, isimleri önemli değil
var benimAramam: aramaFonksiyonu;
benimAramam = function(kynk: string, alt: string) {
return kynk.search(alt) != -1;
}
// Sı nı flar - üyeler (members) varsayı lan olarak public'tir.
class Nokta {
// Özellikler
x: number;
// Yapı cı (constructor) - bu bağlamdaki public/private anahtar kelimeleri
// özellikler için gerekli demirbaş kodu oluşturur ve ilk değerlerin
// atanması nı sağlar.
// Bu örnekte, "y" de "x" gibi tanı mlanacak is, but with less code
// Default values are also supported
constructor(x: number, public y: number = 0) {
this.x = x;
}
// Fonksiyonlar
mesafe() { return Math.sqrt(this.x * this.x + this.y * this.y); }
// Statik üyeler
static orijin = new Nokta(0, 0);
}
var p1 = new Nokta(10 ,20);
var p2 = new Nokta(25); //y = 0
// Kalı tı m
class Nokta3Boyutlu extends Nokta {
constructor(x: number, y: number, public z: number = 0) {
super(x, y); // süper sı nı fı n yapı cı sı nı çağı rmak zorunlu
}
// yeniden tanı mlama
mesafe() {
var d = super.mesafe();
return Math.sqrt(d * d + this.z * this.z);
}
}
// Modüller, "." alt modülleri ayı rmak için kullanı labilir
module Geometri {
export class Kare {
constructor(public kenarUzunluğu: number = 0) {
}
alan() {
return Math.pow(this.kenarUzunluğu, 2);
}
}
}
var s1 = new Geometri.Kare(5);
// Modüle atı fta bulunmak için yerel takma ad
import G = Geometri;
var s2 = new G.Kare(10);
// Jenerik Tipler
// Sı nı flar
class Tuple< T1 , T2 > {
constructor(public item1: T1, public item2: T2) {
}
}
// Arayüzler
interface Çift< T > {
item1: T;
item2: T;
}
// Ve fonksiyonlar
var çifttenTupleÜret = function< T > (p: Çift< T > ) {
return new Tuple(p.item1, p.item2);
};
var tuple = çifttenTupleÜret({ item1:"merhaba", item2:"dünya"});
// Tanı m dosyası na atı fta bulunma:
/// < reference path = "jquery.d.ts" / >
// Şablon Stringleri (ters apostrof kullanan stringler)
// Şablon Stringlerinin kullanı mı
var isim = 'Anders';
var selamlama = `Merhaba ${isim}, nası lsı n?`
// Şablon Stringleri ile çok satı rlı stringler
var çokSatı rlı String = `Bu çok satı rlı
bir string örneği`;
```
## Daha fazlası
2024-04-19 07:34:40 +03:00
* [TypeScript Resmi Sitesi ](https://www.typescriptlang.org/ )
* [GitHub'ta Açı k Kaynak Kodu ](https://github.com/microsoft/TypeScript )