Typescript Dersleri 3 - Veri Tipleri ve Type Annotation İşlemi

in #tr7 years ago (edited)

typescript
Merhaba arkadaşlar, bu yazıda Typescript’te bulunan farklı veri tiplerinden ve type annotation işleminden bahsedeceğim. Hemen bir değişken atayarak başlayalım.

let steemItLevel = 46;

Let anahtar kelimesiyle steemItLevel değişkenine 46 değerini atadık. Eğer bu atamadan sonra aynı değişkene farklı bir değer atamaya çalışırsak [ts] Cannot redeclare block-scoped variable “steemItLevel”. şeklinde bir hata alırız ki block-scoped bir önceki değindiğimiz konseptin adı.

Şu anda değişkenimiz değer bir sayı. Eğer biz aynı değişkene let anahtara kelimesini kullanmadan bir string yani metin atamaya çalışırsak bu sefer farklı bir hata alacağız.

ts error

Görselde görmüş olduğunuz işlemi var anahtar kelimesini kullanarak Javascript’te problemsiz bir şekilde gerçekleştirebiliriz.

Şimdi let anahtar kelimesiyle en başta atadığımız değişkeni tekrar atayalım. Mouse imlecini değiken adının üstüne getirirseniz fark edeceksiniz ki bir tooltip beliriyor. Tooltip üzerinde değişkenimiz sağında : ve number ifadeleri yer alıyor. Yani biz let anahtar kelimesiyle bir değişken ataması yaptığımızda programımız atadığımız değerin tipi neyse ona göre bir tip belirliyor. Yani bizim Typescript Compiler’imiz bu değişkenin yapısını number olarak belirlemiş çünküz biz ona 46 değerini atamışız.

ts type error

Peki belirli bir tip belirlemeden değiken atamasını nasıl yapacağım? Bir atama daha yapalım ve tooltipimizde ne yazdığına bakalım.
Atama;

let SteemIt;

Tooltip;

let SteemIt: any

Artık değikenimizin tipi any yani bütün veri tiplerinden değerler alabilir. Yani aynı Javascript’teki gibi hata almadan atamalar yapabiliriz.

let steemIt;
steemIt = 4;
steemIt = "steem";
steemIt = false;

Typescript artık bunu sorun etmiyor. Peki projemiz ve sağlıklı çalışabilmemiz için bunun önüne geçmek istersek ne yapacağız? İşte bu noktada, Type Annotation devreye giriyor. Eğer hemen önceki tooltip’teki gösterimle aynı şekilde değişkenin tipini belirtirsek Typescript artık ona göre değişkenleri kabul ediyor. Son örneğimizdeki değişkene string veri tipini belirtirsek bakalım ne olacak.

atamalar

  1. ve 4. satırda hata aldık çünkü değişkenimiz string tipinde ama biz ona number ve boolean tipinde değerler atamışız. (2 ve 4 yazıyorum ama 1 ve 4 gözüküyor arkadaşlar düzeltemedim.)

Typescript kendi içerisinde farklı veri tipleri barındırıyor. Bu tiplerin hepsini ihtiyaçlarımıza göre kullanıyoruz. Detaylı bir şekilde tek tek veri tiplerini işlemeyeceğim. Çünkü ilk yazıda belirttiğim gibi bu içerikten faydalanmak istiyorsanız programlama hakkında temel bilgilere sahip olmanız gerek. Ayrıca örnekler arttıkça veri tipleri hakkında da bilgiler ediniyor olacaksınız zaten.

let s: number;
let t: boolean;
let e: string;
let seconde: any;
let m: number[];
let i: any[];

Bir de aklıma gelen enum diye bir tip var. Birbiriyle bağlantılı değişkenler üzerinde çalışırken onları gruplayabilmemize imkan sağlıyor. Bir enum tipi tanımlayıp ne olduğunu daha iyi kavrayalım.

enum Cryptos {
    Steem,
    Bitcoin,
    Ethereum
}

Bu değerleri bir değişkene nasıl atıyoruz?

let myFavoriteCrypto = Cryptos.Steem;

Son olarak da kodumuzu compile edip bakalım Javascript’te böyle bir atama işlemi nasıl yapılıyor?

var Cryptos;
(function (Cryptos) {
    Cryptos[Cryptos["Steem"] = 0] = "Steem";
    Cryptos[Cryptos["Bitcoin"] = 1] = "Bitcoin";
    Cryptos[Cryptos["Ethereum"] = 2] = "Ethereum";
})(Cryptos || (Cryptos = {}));
console.log(Cryptos.Steem);
Sort:  

This post received a 20% vote by @msp-turkey courtesy of @ezgibaki from the Minnow Support Project ( @minnowsupport ). Join us in Discord.

Upvoting this comment will help support @minnowsupport.

This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond

This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.030
BTC 67918.33
ETH 3740.37
USDT 1.00
SBD 3.69