angular 使用了 typescript,強型別是 ts 大殺器之一,除了簡單的 string
、number
那些定義以外,array object 使用度也很高,最常見的作法如下。
interface Member {
username: string;
password: string;
}
const members: Member[] = [
{
username: 'chan',
password: '123456'
}
];
console.log(members);
這樣做沒什麼大問題,但設計上我覺得有點卡,因為 interface Member
就是一個單一物件,另一種寫法比較囉唆一點,但我覺得比較好:
interface Member {
username: string;
password: string;
}
interface Members extends Array<Member> {}
const members: Members = [
{
username: 'chan',
password: '123456'
}
];
console.log(members);
這樣調用 Members
時很明確就是要用陣列,而 Member
則可以給 member detail 使用,職責比較清楚,detail 理論上應該是最小單位,但如果 list 部分有自己的需求也可以自行擴充,type alias 也有相同的作法:
type Member = {
username: string;
password: string;
}
type Members = Member[];
const members: Members = [
{
username: 'chan',
password: '123456'
}
];
console.log(members);
沒有留言:
張貼留言