ใน TypeScript "Core Library" เทียบได้กับ Standard Built-in Objects ของ ECMAScript (JavaScript) ซึ่งมีให้ใช้งานทันทีในทุกสภาพแวดล้อม (เช่น เบราว์เซอร์ หรือ Node.js) โดยไม่จำเป็นต้องใช้คำสั่ง import ใด ๆ
1. การจัดการ Module และการ Output
A. การใช้งาน Module (Imports)
ในขณะที่ Dart ใช้ import 'dart:math'; สำหรับ Core Library, TypeScript/JavaScript ใช้คำสั่ง import เฉพาะกับ External Modules หรือ Files ที่เราสร้างขึ้นเท่านั้น
// การ import ไฟล์หรือ Module ภายนอกเท่านั้น
import { MyClass } from './my_module';
import * as MathUtils from 'lodash'; // ตัวอย่าง External Package
B. การแสดงข้อความทาง Console
แทนที่จะใช้ print() เหมือน Dart ใน TypeScript/JavaScript จะใช้ console.log() และสามารถใช้ console.error(), console.warn() ได้ด้วย
let myStr: string = "Hello TS"; let obj: any; // ค่าเริ่มต้นคือ undefined (ไม่ใช้ null เหมือน Dart) console.log(myStr); // Hello TS console.log(typeof myStr); // string (ใช้ typeof แทน runtimeType สำหรับ primitive) console.log(typeof obj); // undefined
2. การจัดการตัวเลข (Number)
TypeScript มีชนิดข้อมูลตัวเลขเพียงชนิดเดียวคือ number (รวมทั้งเลขจำนวนเต็มและทศนิยม)
A. การแปลงข้อความ (String) เป็นตัวเลข
ใช้ Global Function หรือ Object Methods ในการแปลงข้อความ (String) เป็นตัวเลข:
| การทำงาน | Dart | TypeScript/JavaScript |
| แปลงเป็นจำนวนเต็ม |
int.parse(str) |
parseInt(str, radix) |
| แปลงเป็นทศนิยม |
double.parse(str) |
parseFloat(str) |
let a: string = "37";
let hexValue: string = "42"; // 42 ในเลขฐาน 16
console.log(parseInt(a)); // 37 (ชนิด number)
console.log(parseInt(hexValue, 16)); // 66 (ระบุฐาน 16 ด้วย radix)
console.log(parseFloat("42.1")); // 42.1
B. การแปลงตัวเลขกลับเป็นข้อความ (String)
| การทำงาน | Dart | TypeScript/JavaScript |
| แสดงทศนิยมตามจำนวน |
toStringAsFixed(n) |
toFixed(n) |
| แปลงเป็น String ธรรมดา |
toString() |
toString() |
let numA: number = 123.456; let fixedStr: string = numA.toFixed(2); // String ทศนิยม 2 ตำแหน่ง console.log(fixedStr); // "123.46" (มีการปัดเศษ)
3. การจัดการข้อความ (String) และ Regular Expression
String ใน TypeScript/JavaScript เป็น Object ที่มี Method ในการจัดการข้อความเหมือนกับ Dart
let title: string = " ภาษา TypeScript เบื้องต้น ";
console.log(title.trim()); // "ภาษา TypeScript เบื้องต้น" (ลบช่องว่างหัวท้าย)
console.log(title.trimStart()); // "ภาษา TypeScript เบื้องต้น "
console.log(title.trimEnd()); // " ภาษา TypeScript เบื้องต้น"
// การแทนที่ข้อความ (ไม่เปลี่ยน String เดิม แต่สร้าง String ใหม่)
let greetingTemplate = 'สวัสดี, NAME!';
let greeting = greetingTemplate.replace(new RegExp('NAME'), 'Ebiwayo');
// หรือใช้ replaceAll สำหรับแทนที่ทั้งหมดที่ตรงกัน (ถ้ามีหลายตัว)
console.log(greeting); // สวัสดี, Ebiwayo!
4. การจัดการคอลเลกชัน (Collections)
A. Array (เทียบเท่า Dart List)
ใช้โครงสร้าง [] หรือ Array<Type>
| การทำงาน | Dart (List) | TypeScript (Array) |
| เพิ่มรายการ |
list.add(value) |
array.push(value) |
| เพิ่มหลายรายการ |
list.addAll([v1, v2]) |
array.push(...[v1, v2]) |
| ลบรายการที่ Index |
list.removeAt(index) |
array.splice(index, 1) |
| หาจำนวน |
list.length |
array.length |
B. Set
ใช้คลาส Set ในการเก็บกลุ่มข้อมูลที่ไม่ซ้ำกัน
let ingredients: Set<string> = new Set();
ingredients.add('gold');
ingredients.add('titanium');
ingredients.add('gold'); // ไม่เพิ่มเพราะซ้ำ
console.log(ingredients.size); // 2 (ใช้ .size แทน .length)
console.log(ingredients.has('titanium')); // true (ใช้ .has() แทน .contains())
// การหาค่าที่ซ้ำกัน (Intersection) ต้องทำผ่านการแปลงเป็น Array
let nobleGases = new Set(['xenon', 'argon', 'gold']);
let intersection = [...ingredients].filter(x => nobleGases.has(x));
console.log(intersection); // ['gold']
C. Map
ใช้คลาส Map ในการจัดเก็บข้อมูลแบบ Key-Value คู่กัน โดยสามารถกำหนดชนิดข้อมูลของ Key และ Value ได้อย่างชัดเจน
// Map<Key Type, Value Type>
let searchTerms = new Map<string, number>();
searchTerms.set('Oahu', 1); // กำหนดค่า
searchTerms.set('Kauai', 2);
console.log(searchTerms.get('Kauai')); // 2
console.log(searchTerms.has('Kauai')); // true (ใช้ .has() แทน .containsKey())
searchTerms.delete('Kauai'); // ลบข้อมูล
console.log(searchTerms.has('Kauai')); // false
5. การจัดการ URI (URL Class)
แทนที่จะใช้ Uri Class เหมือนใน Dart ใน TypeScript/JavaScript (สภาพแวดล้อม Web/Node.js) จะใช้ URL Class ซึ่งเป็น Global Object สำหรับจัดการที่อยู่เว็บ (URL)
// การสร้าง Object URL
const url = new URL('https://example.com:8080/path?query=1#hash');
console.log(url.hostname); // example.com
console.log(url.port); // 8080
console.log(url.pathname); // /path
console.log(url.searchParams.get('query')); // 1