TypeScript’de Veri Tipleri

Typescript’deki veri tipleri javascript’dekine benzerlik göstermektedir.

Sayı – Number

Tüm sayı değerlerine karşılık gelen veri tipidir. Bu sayılar 2lik, 8lik, 10luk, 16lık düzende olabilir, ondalıklı veya negatif aralıkta olabilir.

let first:number = 123; // number 
let second: number = 0x37CF;  // hexadecimal
let third:number=0o377 ;      // octal
let fourth: number = 0b111001;// binary

Sayı Fonksiyonları

Sayı tipindeki değişkenler için kullanılan aşağıdaki fonksiyonların (valueOf() hariç) hepsi bir parametre alabilir.

 

toExponential()

Sayının üstel gösterimini döndürür.
let myNumber: number = 123456;

myNumber.toExponential(); // returns 1.23456e+5
myNumber.toExponential(1); //returns 1.2e+5
myNumber.toExponential(2); //returns 1.23e+5
myNumber.toExponential(3); //returns 1.235e+5
toFixed() Sayıyı tam sayıya veya istenilen ondalıklı düzene döndürür.
let myNumber: number = 10.8788;

myNumber.toFixed(); // returns 11
myNumber.toFixed(1); //returns 10.9
myNumber.toFixed(2); //returns 10.88
myNumber.toFixed(3); //returns 10.879
myNumber.toFixed(4); //returns 10.8788
toLocaleString() Sayıları metne dönüştürürken belirli bir yerel düzene göre düzenler.
let myNumber: number = 10667.987;

myNumber.toLocaleString(); // returns 10,667.987 - US English
myNumber.toLocaleString('de-DE'); // returns 10.667,987 - German
myNumber.toLocaleString('ar-EG'); // returns 10667.987 in Arebic
toPrecision() Sayıyı belirli istenen sayı düzenine çevirirken yuvarlama yaparak düzenler.
let myNumber: number = 10.5679;

myNumber.toPrecision(1); // returns 1e+1
myNumber.toPrecision(2); // returns 11
myNumber.toPrecision(3); // returns 10.6
myNumber.toPrecision(4); // returns 10.57
toString() Sayıyı metne dönüştürür.
let myNumber: number = 123;
myNumber.toString(); // returns '123'
myNumber.toString(2); // returns '1111011'
myNumber.toString(4); // returns '1323'
myNumber.toString(8); // returns '173'
myNumber.toString(16); // returns '7b'
myNumber.toString(36); // returns '3f'
valueOf() Sayının ilkel (primitif) değerini döndürür.
let myNumber = new Number(123);
console.log(myNumber) //Output: a number object with value 123
console.log(myNumber.valueOf()) //Output: 123
console.log(typeof num) //Output: object

let num2 = num.valueOf() 
console.log(num2) //Output: 123
console.log(typeof num2) //Output: number

Metin – String

Diğer temel veri tipi; metindir. Metinleri ifade etmek ve işlemek için kullanılır.
Typescript 1.4 ile beraber ES6 şablon metin tipini desteklemektedir.

let employeeName:string = "John Smith"; 
let employeeDept:string = "Finance"; 

// Pre-ES6 
let employeeDesc1: string = employeeName + " works in the " + employeeDept + " department."; 

// Post-ES6 
let employeeDesc2: string = `${employeeName} works in the ${employeeDept} department.`; 

console.log(employeeDesc1);//John Smith works in the Finance department. 
console.log(employeeDesc2);//John Smith works in the Finance department. 

Uzun metin verilerini sürekli + işareti ile eklemek yerine ` geri tırnak işareti ile kapsayıp gelecek değişkenleri ${} ile belirtmek daha avantajlı olacaktır.

Metin Fonksiyonları

charAt() Belirtilen index numarasındaki karakteri geri döndürür.
character = str.charAt(index)
concat() Belirtilen metin değişkenlerini birbirine ekler.
let str1: string = 'Hello';
let str2: string = 'TypeScript';
str1.concat(str2); // returns 'HelloTypeScript'
str1.concat(' ', str2); // returns 'Hello TypeScript'
str1.concat(' Mr. ', 'Bond'); // returns 'Hello Mr. Bond'
indexOf() Metnin içerisinde belirtilen ifadeyi arama yapıp index numarasını döndürür.
let str: string = 'TypeScript';

str.indexOf('T'); // returns 0
str.indexOf('p'); // returns 2
str.indexOf('e'); // returns 3
str.indexOf('T', 1); // returns -1
str.indexOf('t', 1); // returns 9
replace() Metnin içerisinde belirtilen ifadeyi bulur ve istenen ifade ile yer değiştirir.
let str1: string = 'Hello Javascript';
let str2: string = 'TypeScript';

str1.replace('Java', 'Type'); // returns 'Hello TypeScript'
str1.replace('JavaScript', str2); // returns 'Hello TypeScript'
str1.replace(/Hello/gi, 'Hi'); // returns 'Hi TypeScript'
split() Metni belirtilen ayraca göre bölüp sonucunda oluşan elemanları dizi olarak geri döndürür.
let str1: string = 'Apple, Banana, Orange';
let str2: string = ',';

str1.split(str2) // returns [ 'Apple', ' Banana', ' Orange' ]
str1.split(',') // returns [ 'Apple', ' Banana', ' Orange' ]
str1.split(',', 2) // returns [ 'Apple', ' Banana' ]
str1.split(',', 1) // returns [ 'Apple']
toUpperCase() Tüm metni büyük harfe dönüştürür.
let str: string = 'Hello Typescript';
str.toUpperCase(); // returns 'HELLO TYPESCRIPT'
'hello typescript'.toUpperCase(); // returns 'HELLO TYPESCRIPT'
toLowerCase() Tüm metni küçük harfe dönüştürür.
let str: string = 'Hello Typescript';
str.toLowerCase(); // returns hello typescript
'HELLO TYPESCRIPT'.toLowerCase(); // returns hello typescript
charCodeAt() Belirtilen metindeki UTF-16 kod birimi değeri olan bir sayı döndürür.
codePointAt() Belirtilen metinde başlayan UTF-16 kodlu kod noktasının kod noktası değeri olan negatif olmayan bir tam sayı döndürür.
includes() Metnin belirtilen ifadeyi içerip içermediğini kontrol eder.
endsWith() Bir metnin başka bir ifadeyle bitip bitmediğini kontrol eder.
LastIndexOf() Metnin içerisinde belirtilen ifadenin geçtiği en son index numarasını döndürür.
localeCompare() Bir metnin verilen ifadeden önce mi sonra mı geldiğini kontrol eder.
match() Verilen metne karşı normal ifadeyi eşleştirir.
normalize() Verilen metnin Unicode Normalizasyon Formunu döndürür.
padEnd() Geçerli metnin sonunu verilen ifadeyle doldurur.
padStart() Geçerli metnin başlangıcını verilen ifadeyle doldurur.
repeat() Belirli sayıda tekrar eden ifadelerden oluşan metni döndürür.
search() Merin içerisinde verilen ifadeyi arar.
slice() Bir metnin bir bölümünü döndürür.
startsWith() Bir metnin başka bir metin ile başlayıp başlamadığını kontrol eder.
substr() Belirtilen konumda ve verilen karakterlerden başlayarak bir metin döndürür.
substring() Verilen iki metin arasındaki bir metni döndürür.
toLocaleLowerCase() Metni geçerli yerel formata göre küçük harfe dönüştürür.
toLocaleUpperCase() Metni geçerli yerel formata göre büyük harfe dönüştürür.
trim() Metnin hem başındaki hem de sonundaki boşlukları siler.
trimLeft() Metnin sol tarafındaki (başındaki) boşlukları siler.
trimRight() Metnin sağ tarafındaki (sonundaki) boşlukları siler.

 


İkili Mantık(Doğru/yanlış) – Boolean

Temel veri tiplerinden biridir. Küçük harfle tanımlamak önemlidir.

let isPresent:boolean = true;

Dizi – Array

Dizi, farklı veri türlerinin birden çok değerini depolayabilen özel bir veri tipi türüdür. İki farklı şekilde tanımlanıp değer yüklemesi yapılabilir.

let fruits: string[] = ['Apple', 'Orange', 'Banana'];
let fruits: Array<string> = ['Apple', 'Orange', 'Banana'];

Tek bir dizi içerisinde birden fazla veri tipi yer alabilir.

let values: (string | number)[] = ['Apple', 2, 'Orange', 3, 4, 'Banana']; 
let values: Array<string | number> = ['Apple', 2, 'Orange', 3, 4, 'Banana'];

Dizi elemanına erişim

Dizinin istenilen elemanına erişim için [indexNo] köşeli parantezler içerine index numarası yazmak yeterlidir.

let fruits: string[] = ['Apple', 'Orange', 'Banana']; 
fruits[0]; // returns Apple
fruits[1]; // returns Orange
fruits[2]; // returns Banana
fruits[3]; // returns undefined

Döngü ile de erişim yapılabilir.

let fruits: string[] = ['Apple', 'Orange', 'Banana'];

for(var index in fruits){ 
console.log(fruits[index]); // output: Apple Orange Banana
}

for(var i = 0; i < fruits.length; i++){ 
console.log(fruits[i]); // output: Apple Orange Banana
}

Dizi Fonksiyonları

pop() Dizinin son öğesini kaldırır ve o öğeyi döndürür.
push() Diziye yeni eleman ekler ve eklenen eleman ile beraber meydana gelen dizinin boyutunu döndürür.
sort() Dizinin tüm elemanlarını belirtilen koşula göre sıralar.
concat() İki diziyi birleştirir ve birleştirilmiş sonucu döndürür.
indexOf() Dizideki bir değerin ilk eşleşmesinin dizinini döndürür (bulunmazsa -1)
copyWithin() Dizideki bir dizi öğeyi kopyalar.
fill() Diziyi sağlanan başlangıç dizininden bitiş dizinine statik bir değerle doldurur.
shift() Dizinin ilk elemanını kaldırır ve döndürür.
splice() Diziden eleman siler veya ekler.
unshift() Dizinin başına bir veya daha fazla belirtilen ifadeleri ekler.
includes() Dizinin elemanları arasında belirtilen ifadeyi arar.
join() Dizideki tüm elemanları birleştirip tek bir metin haline getirir.
lastIndexOf() Dizideki son elemanın index numarasını döndürür.
slice() Dizinin bir bölümünü ayıklar ve yeni diziyi döndürür.
toString() Diziyi metin veri tipine dönüştürür.
toLocaleString() Diziyi temsil eden yerelleştirilmiş bir diziye döndürür.

 


Dizi – Tuple

 


Dizi – Enum

 


Dizi – Union

 


Herhangibiri – Any

Özellikle başlangıçta alabileceği değerler bilinmeyen değişkenleri için kullanılan veri tipidir. Bu tip ile tanımlanan değişkenler hem metin hem de sayı değeri alabilir. İlk aldığı değere göre veri tipi düzenlenir.

Array olarakta tanımlanabilir. 

let arr: any[] = ["John", 212, true]; arr.push("Smith"); console.log(arr); //Output: [ 'John', 212, true, 'Smith' ]

Boş/Hükümsüz – Void

Java’dakine benzer bir işlevi yerine getiren veri tipidir. Sadece anlamlı bir değer dönmeyen fonksiyonları tanımlamak için kullanılır.

function sayHi(): void { console.log('Hi!') } 
let speech: void = sayHi(); console.log(speech); //Output: undefined

Değişken tanımlamalarında kullanılmaz.

let nothing: void = undefined;
let num: void = 1; // Error

Asla – Never

Sadece typescript’e has bir veri tipidir.  Eğer herhangi bir değer dönmeyecek veya hataya düşme olasılıkları olan geri dönüşler için kullanılır.

İpucu: Void ile Never arasındaki fark nedir? 

Void tanımsız (undefined) veya boş (null) bir değerde olabilir. Never benzer herhangi bir değer alamaz.

Burada ufak bir nüans daha var. Typescript’de aksi belirtilmediği sürece bir fonksiyon daima değer döner. Dönmüyorsa bile undefined döner.

function sayHi(): void { 
    console.log('Hi!')
}

let speech: void = sayHi();
console.log(speech); // undefined

Eğer yukarıdaki speech fonksiyonu never olarak tanımlanırsa derleyici hata olarak döner.