[英]How to declare a type inside class model?
我是angular2的新手。 所以,請忍受我。
到目前為止我嘗試過的是:
export class Navbar {
name: string;
submenu: {
name: string;
}
}
再說一次:我嘗試了數組和[]
export class Navbar {
name: string;
submenu: array;
}
這是沒有子菜單聲明的代碼。
export class Navbar {
name: string;
}
const NAVBAR: Navbar[] = [
{ name: 'Company Data' },
{ name: 'Client Data',
submenu: [
{ name: 'Balance' },
{ name: 'Settlement' }
]
},
{ name: 'Bookie Data' },
{ name: 'Bank Data' },
{ name: 'Journal Entry' },
{ name: 'Journal Bank' },
{ name: 'Report',
submenu: [
{ name: 'General Ledger' },
{ name: 'Trial Balance' },
{ name: 'Profit/Loss' },
{ name: 'Balance Sheet' }
]
},
{ name: 'Control' },
{ name: 'Input',
submenu: [
{ name: 'Company' },
{ name: 'Client' },
{ name: 'Bookie' },
{ name: 'Master' },
{ name: 'Client Agent' },
{ name: 'Bookie Balance' },
{ name: 'Import Client Data' },
{ name: 'Chart Of Account' },
{ name: 'Bank' },
{ name: 'Bank Company' }
]
}
]
這是角度引發的誤差。
app/app.component.ts(10,5): error TS2322: Type '({ name: string; } | { name: string; submenu: { name: string; }[]; })[]' is not assignable to type 'Navbar[]'.
Type '{ name: string; } | { name: string; submenu: { name: string; }[]; }' is not assignable to type 'Navbar'.
Type '{ name: string; submenu: { name: string; }[]; }' is not assignable to type 'Navbar'.
Object literal may only specify known properties, and 'submenu' does not exist in type 'Navbar'.
任何幫助對我來說意義非凡。 謝謝!
有幾件事您將需要更改...首先,我建議您使用interface
或type
而不是class
因為您不會在任何地方調用new
。
另一件事是,通過具有submenu: array
它不是可選的,因此在每個實例上都不會出現這種情況(樹需要停在某處)。 您可以使用?
來表示?
這將為您提供如下界面:
export interface Navbar {
name: string;
submenus?: Navbar[];
}
這將使它起作用:
const navbars: Navbar[] = [
{ name: 'Company Data' },
{ name: 'Client Data',
submenus: [
{ name: 'Balance' },
{ name: 'Settlement' }
]
}
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.