TypeScript入門1:註釋、變數常量、資料型別、函式

yub4by發表於2024-04-30
console.log('hi ts');


//宣告變數
let a: number = 10;
//宣告常量
const b: number = 20;
// 型別推斷:如果⼀個變數或常量的宣告包含了初始值,TS便可以根據初始值進⾏型別推斷,此時可以不顯式指定其型別
let c = 60;
console.log(typeof c); //number


// 數字型別:整數和浮點數、整數和負數
let a1: number = 100;
let a2: number = -100;
let a3: number = 3.5;
let a4: number = -3.5;


// 字串型別
let s1: string = 'hello';
let s2: string = "你好";


// 布林型別
let b1: boolean = true;
let b2: boolean = false;


// 陣列
let arr1: number[] = [1, 2, 3];
let arr2: string[] = ['1', '2', '3'];
let arr3: number[] = [];


// 物件
let person: {name: string, age: number} = {
    name: '張三',
    age: 18
}


// 函式
/**
 * 函式add: 計算並返回兩個數字的和。
 * @param x {number} 第一個加數。
 * @param y {number} 第二個加數。
 * @returns {number} 兩個數字的和。
 */
 function add(x: number, y: number): number {
  return x + y; // 返回x和y的和
}


//可選引數?:調⽤函式時,未傳遞可選引數,則該引數的值為 undefined
function getPersonInfo(name: string, age: number, gender?: string): string {
  if (gender === undefined) {
    gender = '未知'
  }
  return `name:${name},age:${age},gender:${gender}`;
}
let p1 = getPersonInfo('zhagnsan', 10, '男')
let p2 = getPersonInfo('lisi', 15);
console.log(p1);
console.log(p2);


//引數預設值
function getPersonInfo2(name: string, age: number, gender: string='未知'): string {
  return `name:${name},age:${age},gender:${gender}`;
}
let p3 = getPersonInfo2('zhagnsan', 10, '男')
let p4 = getPersonInfo2('lisi', 15);
console.log(p3);
console.log(p4);


//聯合型別|:⼀個函式可能⽤於處理不同型別的值,這種情況可以使⽤聯合型別
function printNumberOrString(message: number | string) {
  console.log(message)
}
printNumberOrString('a')
printNumberOrString(1)


//任意型別any
function print(message:any) {
  console.log(message)
}
print('aa')
print(11)
print(true)
print(person)

//空返回值void:若函式沒有返回值,則可以使⽤ void 作為返回值型別,其含義為空
function test(): void {
  console.log('hello');
}


//返回值型別推斷:函式的返回值型別可根據函式內容推斷出來時,可以省略不寫。
function test2() {
  //TS自動推斷為void
  console.log('hello');
}
function sum2(a: number, b: number) {
  //TS自動推斷為number
  return a + b;
}



//匿名函式:適⽤於簡單且僅需⼀次性使⽤的場景。匿名函式能夠根據上下⽂推斷出引數型別,因此引數型別可以省略
let arr4: number[] = [77, 88, 99];
arr4.forEach(function(item) {
  console.log(item);
})


//lambda箭頭函式:數的語法還可以進⼀步的簡化,只保留引數列表和函式體兩個核⼼部分,兩者⽤ => 符號連線
arr4.forEach((item) => { console.log(item); })
arr4.forEach(item => console.log(item))

相關文章