Jenis Data dalam TypeScript
Artikel ini menerangkan jenis data dalam TypeScript.
YouTube Video
Jenis Data dalam TypeScript
TypeScript menyediakan pelbagai jenis data. Ini membolehkan anda menetapkan jenis yang ketat untuk pembolehubah, hujah fungsi, dan nilai pulangan. Berikut adalah jenis data utama dan kegunaannya.
Jenis Asas
Jenis number
1let age: number = 25;
2console.log(age); // Outputs: 25
3console.log(typeof age); // Outputs: number
number
adalah jenis yang digunakan untuk mengendalikan nilai numerik, termasuk integer dan nombor perpuluhan (nombor terapung). Mengendalikan nilai yang melebihi had tertentu menghasilkanInfinity
atauNaN
(Bukan Nombor).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
-
Dalam TypeScript, nombor diwakili sebagai nombor terapung. Ini mungkin menghasilkan ketidaktepatan kecil dalam keputusan pengiraan.
-
Apabila pengiraan yang tepat diperlukan, seperti jumlah kewangan, adalah perlu untuk mengelakkan kesilapan pembundaran seperti ini. Sebagai contoh, anda boleh menggunakan
BigInt
atautoFixed()
, atau menyesuaikan tempat perpuluhan menggunakan perpustakaan sepertidecimal.js
.
Jenis string
Jenis string
mengendalikan data teks.
1let greeting: string = "Hello, TypeScript!";
2console.log(greeting); // Outputs: Hello, TypeScript!
3console.log(typeof greeting); // Outputs: string
boolean (Jenis Logik)
Jenis boolean
mempunyai dua nilai: true
atau false
.
1let isOpen: boolean = true;
2console.log(isOpen); // Outputs: true
3console.log(typeof isOpen); // Outputs: boolean
null dan undefined
null
mewakili 'nilai yang tidak wujud', dan undefined
mewakili 'nilai yang tidak ditakrifkan'.
1let emptyValue: null = null;
2let notDefined: undefined = undefined;
3
4console.log(emptyValue); // Outputs: null
5console.log(typeof emptyValue); // Outputs: object (JavaScript specification)
6
7console.log(notDefined); // Outputs: undefined
8console.log(typeof notDefined); // Outputs: undefined
Array
Dalam TypeScript, anda boleh menetapkan jenis elemen dalam array. number[]
ialah array nombor, dan string[]
ialah array teks.
1let numbers: number[] = [1, 2, 3, 4];
2console.log(numbers); // Outputs: [1, 2, 3, 4]
3console.log(typeof numbers); // Outputs: object
4
5let words: string[] = ["TypeScript", "JavaScript"];
6console.log(words); // Outputs: ["TypeScript", "JavaScript"]
7console.log(typeof words); // Outputs: object
Tuple
Tuple ialah array dengan elemen-elemen yang mempunyai jenis berbeza.
1let person: [string, number] = ["Alice", 30];
2console.log(person); // Outputs: ["Alice", 30]
3console.log(typeof person); // Outputs: object
Enum
enum
mentakrifkan satu set pemalar yang dinamakan.
1enum Color {
2 Red,
3 Green,
4 Blue
5}
6
7let favoriteColor: Color = Color.Green;
8console.log(favoriteColor); // Outputs: 1 (Defaults start from 0)
9console.log(typeof favoriteColor); // Outputs: number
any
Jenis any
boleh memegang sebarang jenis nilai dan digunakan apabila anda mahu mematikan pemeriksaan jenis.
1let anything: any = "Hello";
2console.log(anything); // Outputs: Hello
3console.log(typeof anything); // Outputs: string
4
5anything = 42;
6console.log(anything); // Outputs: 42
7console.log(typeof anything); // Outputs: number
Jenis Union
Dengan menggunakan jenis Union, anda boleh menetapkan pembolehubah yang boleh memegang salah satu daripada pelbagai jenis.
1let identifier: number | string = "ID_12345";
2console.log(identifier); // Outputs: ID_12345
3console.log(typeof identifier); // Outputs: string
4
5identifier = 12345;
6console.log(identifier); // Outputs: 12345
7console.log(typeof identifier); // Outputs: number
Ringkasan
number
,string
,boolean
: Jenis Primitif.null
,undefined
: Nilai Khas.Array
: Satu array dengan anotasi jenis.Tuple
: Array dengan elemen daripada jenis yang berbeza.enum
: Jenis yang diperhitungkan.any
: Sebarang jenis.Union
: Satu pemboleh ubah yang boleh mengambil salah satu daripada berbilang jenis.
Dengan menggunakan jenis data ini, TypeScript meningkatkan keselamatan jenis, menjadikannya lebih mudah untuk mencegah kesilapan semasa pembangunan.
Objek Pembungkus
Wrapper Objects dalam TypeScript adalah objek yang dicipta secara automatik untuk mengendalikan jenis data primitif sebagai objek. Jenis primitif membolehkan operasi yang ringan dan pantas, manakala jenis objek mempunyai kaedah dan sifat, membolehkan operasi yang lebih kaya.
Dalam JavaScript (dan TypeScript), terdapat objek pembungkus yang sepadan dengan jenis primitif seperti string
, number
, dan boolean
. Ia diciptakan menggunakan fungsi konstruktor yang dipanggil String
, Number
, dan Boolean
secara masing-masing.
Berikut adalah contoh objek pembungkus.
Objek String
Objek String
menyediakan sifat dan kaedah untuk string.
1let strPrimitive: string = "Hello, World!";
2let strObject: String = new String("Hello, World!");
3
4console.log(strPrimitive); // Outputs: Hello, World!
5console.log(typeof strPrimitive); // Outputs: string
6
7console.log(strObject); // Outputs: [String: 'Hello, World!']
8console.log(typeof strObject); // Outputs: object
Ciri-ciri:
- Tidak seperti
string
primitif, objekString
dianggap sebagaiobject
olehtypeof
. - Objek pembungkus berguna semasa memanipulasikan string atau memanggil kaedah padanya.
Objek Number
Objek Number
menyediakan sifat dan kaedah untuk nombor.
1let numPrimitive: number = 42;
2let numObject: Number = new Number(42);
3
4console.log(numPrimitive); // Outputs: 42
5console.log(typeof numPrimitive); // Outputs: number
6
7console.log(numObject); // Outputs: [Number: 42]
8console.log(typeof numObject); // Outputs: object
Ciri-ciri:
- Objek
Number
, sebagai pembungkus untuk nombor, termasuk kaedah untuk operasi angka (contohnya,toFixed
).
Objek Boolean
Objek Boolean
menyediakan sifat dan kaedah untuk nilai boolean.
1let boolPrimitive: boolean = true;
2let boolObject: Boolean = new Boolean(true);
3
4console.log(boolPrimitive); // Outputs: true
5console.log(typeof boolPrimitive); // Outputs: boolean
6
7console.log(boolObject); // Outputs: [Boolean: true]
8console.log(typeof boolObject); // Outputs: object
Ciri-ciri:
- Objek
Boolean
adalah pembungkus untuk jenisboolean
primitif dan dianggap sebagaiobject
.
Perbezaan antara Objek Pembungkus dan Jenis Primitif
Kerana objek pembungkus dianggap sebagai objek, terdapat sedikit penurunan prestasi, tetapi operasi yang lebih berfungsi boleh dilakukan kerana sifat dan kaedah yang ditambah. Selain itu, terdapat perbezaan dalam perbandingan menggunakan ==
dan ===
.
1let numPrimitive: number = 123;
2let numObject: Number = new Number(123);
3
4console.log('== : ', numPrimitive == numObject); // Outputs: true (Value comparison)
5console.log('=== : ', numPrimitive === numObject); // Outputs: false (Due to differing types)
Ciri-ciri:
==
membandingkan nilai, manakala===
membandingkan dengan ketat termasuk jenis.===
mengembalikanfalse
apabila membandingkan objek pembungkus dengan jenis primitif.
Penukaran Jenis
Dalam TypeScript, adalah penting untuk menguruskan penukaran jenis tersirat dan tersurat dengan betul.
Penukaran Jenis Tersirat
- Dalam TypeScript, penukaran jenis tersirat harus dielakkan sebanyak mungkin untuk memastikan keselamatan jenis.
1const result: string = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- Dalam contoh ini, nombor
5
secara tersirat ditukar kepada string, menghasilkan string"55"
.
Penukaran Jenis Tersurat
- Dalam TypeScript, gunakan anotasi jenis atau fungsi penukaran jenis untuk melaksanakan penukaran jenis dengan selamat.
1const num: string = "123";
2const convertedNum: number = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- Dalam contoh ini, fungsi
Number()
digunakan untuk secara tersurat menukar string"123"
kepada nombor123
.
Pemeriksaan Jenis
Dalam TypeScript, anda boleh menggunakan operator typeof
untuk memeriksa jenis data sesuatu pemboleh ubah.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
- Dalam TypeScript, anda boleh menggunakan
typeof
untuk memeriksa jenis, tetapi untuk pemeriksaan jenis yang lebih tepat, disarankan juga untuk menggunakan operatorinstanceof
atauis
.
Ringkasan
- Objek Pembungkus dianggap sebagai objek kerana mereka menyediakan kaedah tambahan dan sifat untuk jenis primitif.
String
,Number
, danBoolean
adalah contoh representatif objek pembungkus.- Tidak seperti jenis primitif, objek pembungkus dikenalpasti sebagai
object
olehtypeof
.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.