1:一般數組類型的定義
現在我們可以定義一個最簡單的數組類型,比如就是數字類型,那么就可以這么寫:
const numberArr = [1, 2, 3];
這時候你把鼠標放在numberArr上面可以看出,這個數組的類型就是 number 類型。這是 TypeScript 通過類型推斷自己推斷出來的。 如果你要顯示的注解,也非常簡單,可以寫成下面的形式。
const numberArr: number[] = [1, 2, 3];
同樣道理,如果你的數組各項是字符串,你就可以寫成這樣。
const stringArr: string[] = ["a", "b", "c"];
也就是說你可以定義任意類型的數組,比如是undefined。
const undefinedArr: undefined[] = [undefined, undefined];
這時候問題來了,如果數組中有多種類型,比如既有數字類型,又有字符串的時候。那我們要如何定義那。 很簡單,只要加個(),然后在里邊加上|就可以了,具體看代碼。
const arr: (number | string)[] = [1, "string", 2];
數組簡單類型的定義就是這樣了,並不難。
2:數組中對象類型的定義
如果你作過一些項目,你就會知道真實的項目中數組中一定會有對象的出現。那對於這類帶有對象的數組定義就稍微麻煩點了。 比如現在我們要定義一個有很多小姐姐的數組,每一個小姐姐都是一個對象。這是的定義就編程了這樣。
const xiaoJieJies: { name: string, age: Number }[] = [
{ name: "劉英", age: 18 },
{ name: "謝大腳", age: 28 },
];
這種形式看起來比較麻煩,而且如果有同樣類型的數組,寫代碼也比較麻煩,TypeScript 為我們准備了一個概念,叫做類型別名(type alias)。
比如剛才的代碼,就可以定義一個類型別名,定義別名的時候要以type關鍵字開始。現在定義一個Lady的別名。
type Lady = { name: string, age: Number };
有了這樣的類型別名以后哦,就可以把上面的代碼改為下面的形式了。
type Lady = { name: string, age: Number };
const xiaoJieJies: Lady[] = [
{ name: "劉英", age: 18 },
{ name: "謝大腳", age: 28 },
];
這樣定義是完全起作用的,比如我們下面在對象里再加入一個屬性,這時候編譯器就會直接給我們報錯了。
這時候有的小伙伴就會問了,我用類進行定義可以嗎?答案是可以的,比如我們定義一個Madam的類,然后用這個類來限制數組的類型也是可以的。
class Madam {
name: string;
age: number;
}
const xiaoJieJies: Madam[] = [
{ name: "劉英", age: 18 },
{ name: "謝大腳", age: 28 },
];
可以看到結果,我們這么寫也是完全可以的。
有好的建議,請在下方輸入你的評論。
歡迎訪問個人博客
https://guanchao.site
歡迎訪問小程序: