TypeScript - Değişkenler

Değişken, tanımı gereği, değerleri depolayan “bellekte adlandırılmış bir alandır”. Başka bir deyişle, bir programdaki değerler için bir kap görevi görür. TypeScript değişkenleri JavaScript adlandırma kurallarına uymalıdır -

  • Değişken adları, alfabe ve sayısal rakamlar içerebilir.

  • Alt çizgi (_) ve dolar ($) işareti dışında boşluk ve özel karakterler içeremezler.

  • Değişken isimleri bir rakamla başlayamaz.

Kullanılmadan önce bir değişken bildirilmelidir. Kullanvar değişkenleri bildirmek için anahtar kelime.

TypeScript'te Değişken Bildirimi

TypeScript'te bir değişkeni bildirmek için tür sözdizimi, değişken adından sonra iki nokta üst üste (:) ve ardından türünün eklenmesidir. Tıpkı JavaScript'te olduğu gibi,var bir değişkeni bildirmek için anahtar kelime.

Bir değişken tanımladığınızda, dört seçeneğiniz vardır -

  • Tek bir ifadede türünü ve değerini belirtin.

  • Türünü bildirin, ancak değerini belirtin. Bu durumda, değişken tanımsız olarak ayarlanacaktır.

  • Değerini açıklayın ama türü belirtmeyin. Değişken türü, atanan değerin veri türüne ayarlanacaktır.

  • Hiçbir değerin tür olmadığını bildirin. Bu durumda, değişkenin veri türü herhangi olacak ve tanımsız olarak başlatılacaktır.

Aşağıdaki tablo, yukarıda tartışıldığı gibi değişken bildirimi için geçerli sözdizimini göstermektedir -

S.No. Değişken Bildirimi Sözdizimi ve Açıklama
1.

var name:string = ”mary”

Değişken string türünde bir değer depolar

2.

var name:string;

Değişken bir dize değişkenidir. Değişkenin değeri varsayılan olarak tanımsız olarak ayarlanmıştır

3.

var name = ”mary”

Değişkenin türü, değerin veri türünden çıkarılır. Burada değişken dizge tipindedir

4.

var name;

Değişkenin veri türü herhangi biri. Varsayılan olarak değeri tanımsız olarak ayarlanmıştır.

Örnek: TypeScript'teki Değişkenler

var name:string = "John"; 
var score1:number = 50;
var score2:number = 42.50
var sum = score1 + score2 
console.log("name"+name) 
console.log("first score: "+score1) 
console.log("second score: "+score2) 
console.log("sum of the scores: "+sum)

Derleme sırasında aşağıdaki JavaScript kodunu oluşturacaktır.

//Generated by typescript 1.8.10
var name = "John";
var score1 = 50;
var score2 = 42.50;
var sum = score1 + score2;
console.log("name" + name);
console.log("first score: " + score1);
console.log("second score : " + score2);
console.log("sum of the scores: " + sum);

Yukarıdaki programın çıktısı aşağıda verilmiştir -

name:John 
first score:50 
second score:42.50 
sum of the scores:92.50

TypeScript derleyicisi, aynı türde olmayan bir değişkene bir değer atamaya çalışırsak hatalar üretecektir. Bu nedenle, TypeScript, Güçlü Yazmayı izler. Güçlü yazma sözdizimi, atama operatörünün (=) her iki tarafında belirtilen türlerin aynı olmasını sağlar. Aşağıdaki kodun bir derleme hatasıyla sonuçlanmasının nedeni budur -

var num:number = "hello"     // will result in a compilation error

TypeScript'te Tip Onaylama

TypeScript, bir değişkeni bir türden diğerine değiştirmeye izin verir. TypeScript, bu işlemi Type Assertion olarak adlandırır . Sözdizimi, hedef türünü <> sembolleri arasına koymak ve onu değişken veya ifadenin önüne yerleştirmektir. Aşağıdaki örnek bu kavramı açıklamaktadır -

Misal

var str = '1' 
var str2:number = <number> <any> str   //str is now of type number 
console.log(typeof(str2))

Visual Studio Code'da fare işaretçisini tür onaylama ifadesinin üzerine getirirseniz, değişkenin veri türündeki değişikliği görüntüler. Temel olarak, S'nin T'nin bir alt türü veya T'nin S'nin bir alt türü olması durumunda, S türünden T'ye iddianın başarılı olmasına izin verir.

Bunun "tür dönüştürme" olarak adlandırılmamasının nedeni, yayınlamanın genellikle bir tür çalışma zamanı desteği anlamına gelirken, "tür iddiaları" yalnızca bir derleme zamanı yapısı ve derleyiciye kodunuzun nasıl olmasını istediğiniz konusunda ipuçları sağlamanın bir yoludur. analiz edilecek.

Derleme sırasında aşağıdaki JavaScript kodunu oluşturacaktır.

"use strict";
var str = '1';
var str2 = str; //str is now of type number 
console.log(typeof (str2));

Aşağıdaki çıktıyı üretecektir -

string

TypeScript'te Çıkarılan Yazma

Typescript güçlü bir şekilde yazılmış olduğu gerçeği göz önüne alındığında, bu özellik isteğe bağlıdır. TypeScript ayrıca değişkenlerin dinamik yazımını teşvik eder. Bu, TypeScript'in bir değişkeni tür olmadan bildirmeyi teşvik ettiği anlamına gelir. Bu tür durumlarda derleyici, kendisine atanan değere göre değişkenin türünü belirleyecektir. TypeScript, değişkenin kod içindeki ilk kullanımını bulacak, başlangıçta ayarlandığı türü belirleyecek ve ardından kod bloğunuzun geri kalanında bu değişken için aynı türü varsayacaktır.

Aynısı aşağıdaki kod parçacığında açıklanmaktadır -

Örnek: Çıkarsanmış Yazma

var num = 2;    // data type inferred as  number 
console.log("value of num "+num); 
num = "12";
console.log(num);

Yukarıdaki kod pasajında ​​-

  • Kod bir değişken bildirir ve değerini 2'ye ayarlar. Değişken bildiriminin veri türünü belirtmediğini unutmayın. Bu nedenle program, değişkenin veri türünü belirlemek için çıkarsanmış tiplemeyi kullanır, yani değişkenin ayarlandığı ilk değerin türünü atar. Bu durumda,num tip numarasına ayarlanır.

  • Kod değişkenin değerini dizeye ayarlamaya çalıştığında. Değişkenin türü zaten sayı olarak ayarlandığından derleyici bir hata atar.

Aşağıdaki çıktıyı üretecektir -

error TS2011: Cannot convert 'string' to 'number'.

TypeScript Değişken Kapsamı

Bir değişkenin kapsamı, değişkenin nerede tanımlandığını belirtir. Bir programdaki bir değişkenin kullanılabilirliği, kapsamına göre belirlenir. TypeScript değişkenleri aşağıdaki kapsamlardan olabilir -

  • Global Scope- Global değişkenler programlama yapılarının dışında bildirilir. Bu değişkenlere kodunuzun herhangi bir yerinden erişilebilir.

  • Class Scope - Bu değişkenlere ayrıca fields. Alanlar veya sınıf değişkenleri, sınıf içinde ancak yöntemlerin dışında bildirilir. Bu değişkenlere sınıfın nesnesi kullanılarak erişilebilir. Alanlar ayrıca statik olabilir. Statik alanlara sınıf adı kullanılarak erişilebilir.

  • Local Scope - Adından da anlaşılacağı gibi yerel değişkenler, yöntemler, döngüler vb. Gibi yapılar içinde bildirilir. Yerel değişkenlere yalnızca bildirildikleri yapı içinde erişilebilir.

Aşağıdaki örnek, TypeScript'teki değişken kapsamları gösterir.

Örnek: Değişken Kapsam

var global_num = 12          //global variable 
class Numbers { 
   num_val = 13;             //class variable 
   static sval = 10;         //static field 
   
   storeNum():void { 
      var local_num = 14;    //local variable 
   } 
} 
console.log("Global num: "+global_num)  
console.log(Numbers.sval)   //static variable  
var obj = new Numbers(); 
console.log("Global num: "+obj.num_val)

Transpiling sırasında, aşağıdaki JavaScript kodu oluşturulur -

var global_num = 12;              //global variable 
var Numbers = (function () {
   function Numbers() {
      this.num_val = 13;          //class variable 
   }
   Numbers.prototype.storeNum = function () {
      var local_num = 14;        //local variable 
   };
   Numbers.sval = 10;            //static field 
   return Numbers;
}());

console.log("Global num: " + global_num);
console.log(Numbers.sval);       //static variable  

var obj = new Numbers();
console.log("Global num: " + obj.num_val);

Aşağıdaki çıktıyı üretecektir -

Global num: 12
10
Global num: 13

Yerel değişkene yöntemin dışında erişmeyi denerseniz, bu bir derleme hatasıyla sonuçlanır.

error TS2095: Could not find symbol 'local_num'.