我正在尝试根据上述格式打印以下变量。有人可以帮忙吗?
数据
export const shop_items: Inventory:{
Toys{
Balls: {
BallId: 001uy,
BallName: Soccerball,
SignedBy: David_Beckham,
},
},
Books:{
Novel: {
BookId: ‘001fd’,
BookName: ‘Beauty and the beast’,
},
Puzzle: {
BookId: ‘002sz’,
BookName: ‘Sherlock Holmes’,
},
Sci-fi: {
BookId: ’003tr’,
BookName: ‘Dr.Gadget’,
},
}
}
格式
toy下面的变量就是原样打印出来的。但是书籍下的数据应该作为路径出现
BallId : 001uy
BallName : Soccerball
SignedBy : David_Beckham
/Books/Novel/BookId : 001fd
/Books/Puzzle/BookId : 002sz
/Books/Sci-fi/BookId : 003tr
这解决了你的问题。在 Playground 上试试吧。
type Ball = { BallId: string; BallName: string; SignedBy?: string };
type Book = { BookId: string; BookName: string; SignedBy? : string}
type Inventory = { Books: { [Item: string]: Book} } & { Toys: { [Item: string]: Ball } };
const shop_items: Inventory = {
Toys: {
Balls: {
BallId: "001uy",
BallName: "Soccerball",
SignedBy: "David_Beckham",
},
},
Books: {
Novel: {
BookId: "001fd",
BookName: "Beauty and the beast",
},
Puzzle: {
BookId: "002sz",
BookName: "Sherlock Holmes",
},
"Sci-fi": {
BookId: "003tr",
BookName: "Dr.Gadget",
},
},
};
function printBook(name: string, book: Book){
console.log(`Book/${name}/bookId: ${book.BookId}`);
}
function printBall( ball: Ball){
console.log(`BallId: ${ball.BallId}`);
console.log(`BallName: ${ball.BallName}`);
console.log(`SingnedBy: ${ball.SignedBy}`);
}
Object.entries(shop_items.Toys).forEach((val: [string, Ball]) => printBall(val[1] ))
Object.entries(shop_items.Books).forEach((val: [string, Book]) => printBook(val[0],val[1] )