TypeScript - Variabel
Variabel, menurut definisi, adalah "ruang bernama dalam memori" yang menyimpan nilai. Dengan kata lain, ini bertindak sebagai wadah untuk nilai-nilai dalam suatu program. Variabel TypeScript harus mengikuti aturan penamaan JavaScript -
Nama variabel dapat berisi huruf dan angka numerik.
Mereka tidak boleh berisi spasi dan karakter khusus, kecuali garis bawah (_) dan tanda dolar ($).
Nama variabel tidak boleh dimulai dengan digit.
Variabel harus dideklarasikan sebelum digunakan. Menggunakanvar kata kunci untuk mendeklarasikan variabel.
Deklarasi Variabel di TypeScript
Sintaks tipe untuk mendeklarasikan variabel dalam TypeScript adalah dengan menyertakan titik dua (:) setelah nama variabel, diikuti dengan tipenya. Sama seperti di JavaScript, kami menggunakanvar kata kunci untuk mendeklarasikan variabel.
Saat Anda mendeklarasikan variabel, Anda memiliki empat opsi -
Nyatakan jenis dan nilainya dalam satu pernyataan.
Nyatakan jenisnya tetapi tidak ada nilainya. Dalam kasus ini, variabel akan disetel ke tidak ditentukan.
Nyatakan nilainya tetapi tanpa jenisnya. Jenis variabel akan disetel ke jenis data dari nilai yang ditetapkan.
Deklarasikan baik nilai bukan tipe. Dalam hal ini, tipe data variabel akan menjadi apa saja dan akan diinisialisasi menjadi tidak ditentukan.
Tabel berikut menggambarkan sintaks yang valid untuk deklarasi variabel seperti yang dibahas di atas -
S.No. | Sintaks & Deskripsi Deklarasi Variabel |
---|---|
1. | var name:string = ”mary” Variabel menyimpan nilai tipe string |
2. | var name:string; Variabel tersebut adalah variabel string. Nilai variabel disetel ke tidak ditentukan secara default |
3. | var name = ”mary” Jenis variabel disimpulkan dari jenis data nilai. Di sini, variabelnya adalah tipe string |
4. | var name; Jenis data variabel adalah apa saja. Nilainya disetel ke tidak ditentukan secara default. |
Contoh: Variabel di TypeScript
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)
Saat kompilasi, itu akan menghasilkan kode JavaScript berikut.
//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);
Output dari program di atas diberikan di bawah ini -
name:John
first score:50
second score:42.50
sum of the scores:92.50
Kompilator TypeScript akan menghasilkan kesalahan, jika kita mencoba untuk memberikan nilai ke variabel yang tidak berjenis sama. Karenanya, TypeScript mengikuti Pengetikan Kuat. Sintaks pengetikan yang kuat memastikan bahwa jenis yang ditentukan di kedua sisi operator penugasan (=) adalah sama. Inilah sebabnya mengapa kode berikut akan menghasilkan kesalahan kompilasi -
var num:number = "hello" // will result in a compilation error
Ketik Assertion di TypeScript
TypeScript memungkinkan mengubah variabel dari satu jenis ke jenis lainnya. TypeScript merujuk ke proses ini sebagai Type Assertion . Sintaksnya adalah meletakkan tipe target di antara simbol <> dan meletakkannya di depan variabel atau ekspresi. Contoh berikut menjelaskan konsep ini -
Contoh
var str = '1'
var str2:number = <number> <any> str //str is now of type number
console.log(typeof(str2))
Jika Anda mengarahkan penunjuk mouse ke atas pernyataan pernyataan tipe dalam kode Visual Studio, itu akan menampilkan perubahan dalam tipe data variabel. Pada dasarnya ini memungkinkan pernyataan dari tipe S ke T berhasil jika S adalah subtipe dari T atau T adalah subtipe S.
Alasan mengapa ini tidak disebut "type casting" adalah karena casting umumnya menyiratkan semacam dukungan waktu proses sementara, "type assertions" adalah murni konstruksi waktu kompilasi dan cara bagi Anda untuk memberikan petunjuk kepada compiler tentang bagaimana Anda ingin kode Anda dianalisis.
Saat kompilasi, itu akan menghasilkan kode JavaScript berikut.
"use strict";
var str = '1';
var str2 = str; //str is now of type number
console.log(typeof (str2));
Ini akan menghasilkan keluaran sebagai berikut -
string
Pengetikan Tereka dalam TypeScript
Mengingat fakta bahwa, Ketik sangat diketik, fitur ini opsional. TypeScript juga mendorong pengetikan variabel secara dinamis. Ini artinya, TypeScript mendorong deklarasi variabel tanpa tipe. Dalam kasus seperti itu, kompilator akan menentukan tipe variabel berdasarkan nilai yang diberikan padanya. TypeScript akan menemukan penggunaan pertama dari variabel di dalam kode, menentukan jenis yang awalnya telah ditetapkan dan kemudian mengasumsikan jenis yang sama untuk variabel ini di seluruh blok kode Anda.
Hal yang sama dijelaskan dalam cuplikan kode berikut -
Contoh: Pengetikan Tereka
var num = 2; // data type inferred as number
console.log("value of num "+num);
num = "12";
console.log(num);
Dalam potongan kode di atas -
Kode mendeklarasikan variabel dan menetapkan nilainya ke 2. Perhatikan bahwa deklarasi variabel tidak menentukan tipe data. Oleh karena itu, program menggunakan pengetikan yang disimpulkan untuk menentukan tipe data dari variabel, yaitu, program menetapkan tipe dari nilai pertama yang diatur ke variabel. Pada kasus ini,num diatur ke nomor jenis.
Ketika kode mencoba untuk mengatur nilai variabel menjadi string. Kompilator melontarkan kesalahan karena jenis variabel sudah disetel ke angka.
Ini akan menghasilkan keluaran sebagai berikut -
error TS2011: Cannot convert 'string' to 'number'.
Cakupan Variabel TypeScript
Ruang lingkup variabel menentukan di mana variabel itu didefinisikan. Ketersediaan variabel dalam program ditentukan oleh ruang lingkupnya. Variabel TypeScript dapat berupa cakupan berikut -
Global Scope- Variabel global dideklarasikan di luar konstruksi pemrograman. Variabel ini dapat diakses dari mana saja dalam kode Anda.
Class Scope - Variabel ini juga disebut fields. Bidang atau variabel kelas dideklarasikan di dalam kelas tetapi di luar metode. Variabel ini dapat diakses dengan menggunakan objek kelas. Bidang juga bisa statis. Bidang statis dapat diakses menggunakan nama kelas.
Local Scope - Variabel lokal, seperti namanya, dideklarasikan dalam konstruksi seperti metode, loop, dll. Variabel lokal hanya dapat diakses dalam konstruksi tempat mereka dideklarasikan.
Contoh berikut menggambarkan cakupan variabel di TypeScript.
Contoh: Ruang Lingkup Variabel
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)
Saat transpiling, kode JavaScript berikut dibuat -
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);
Ini akan menghasilkan keluaran sebagai berikut -
Global num: 12
10
Global num: 13
Jika Anda mencoba mengakses variabel lokal di luar metode, itu menghasilkan kesalahan kompilasi.
error TS2095: Could not find symbol 'local_num'.