White(aegis4206)


TypeScript

為彌補弱型別的JS而生,基於JS的型別管理

環境安裝

npm install -g typescript 或 yarn add -g typescript

資料型別(若無設定型別,TS會根據初始值推論該變數型別)

let num: number = 10;
let str: string = "Hello";
let flag: boolean = true;
let nullValue: null = null;
let undefinedValue: undefined = undefined;
let sym: symbol = Symbol("key");
let bigInt: bigint = BigInt(9007199254740991);
let value: any = 5; // 任意型別
let value: string | number = 1 ; // 也可以聯合型別

泛型,宣告類型以<型別>代入型別參數

interface Test<T,U> {
    ss: T[],
    xx: U[]
};

// 陣列object key:ss value:string
const aaa: Test<string,number>[] = [{ 
    ss: ['123'] ,
    xx: [123]
}];

interface與type差別

interface
// 可重複宣告,會自動進行合併
interface Person {
    name: string;
    age: number;
};
    
interface Person {
    gender: string;
};
const john: Person = {
    name: "John",
    age: 30,
    gender: "male",
};

// 也可以使用extends繼承
interface PersonSayHello extends Person{
    sayHello(): void;
};
const joson: PersonSayHello = {
    ...john,
    sayHello: () => {
        console.log("Hello!");
    },
}
type
// 可聯合型別
type A = { a: number };
type B = { b: string };

type AB = A & B; // 包含 A 和 B 的屬性
type AorB = A | B; // 包含 A 或 B 的屬性
type AandNew = A & {
    c: boolean;
}; // 包含 A 和 新 的屬性

Copyright © 2025 white.