/** * TS 數組和 JS 數組是一樣的 * 變量提示,const numberArr: number[] */ const numberArr = [1, 2, 3]; const arr: number[] = [1,2,3]; const stringArr: string[] = ['a', 'b', 'c']; // 如果這個數組里面既存數字又存字符串,如何寫 const arr1: (number | string)[] = [1, '2' ,3]; // 除了基本類型的數組,對象類型的數組怎么寫 const objectArr: {name: string, age: number}[] = [{name:'a', age:16}] // 將上面的寫法簡化下,利用 type alias 類型別名 type User = {name: string, age: number} const objectArr1: User[] = [{name:'a', age:16}] // 元組 tuple const teacherinfo = ['zina', 'girl', 18]; /** * 鼠標懸浮變量 * const teacherinfo: (string | number)[], * 推斷出 teacherinfo 里面存儲的值可能是 string, 也可能是 number */ const teacherinfo1: (string | number)[] = ['zina', 'girl', 18]; /** * 如果說后面的這個數組,長度肯定只有三個, * 第一個肯定是字符串,第二個肯定是字符串,第三個肯定是數字 * 這個時候第一個改成數字不會報錯,數組這種類型約束已經約束不到了 * 這個時候元祖的作用就顯現了 */ const teacherinfo2: [string, string, number] = ['zina', 'girl', 18]; /** * 這種就是元祖的寫法,這個時候后面加一個,或者改動三者的類型都會報錯 * 一個數組里面的長度和類型都是固定的時候,就可以使用元祖 * 場景:讀取 excel csv 的時候 */ const teacherinfo3: [string, string, number][] = [ ['zina', 'girl', 18], ['zina', 'girl', 18], ['zina', 'girl', 18] ];
