我使用Angular Material table componentå°±æ˜¯è¿™æ ·ï¼š
this.userService.getUsers().subscribe((response) => {
this.users = new MatTableDataSource(response);
});
它有效,但在编译时会抛出以下打å—稿错误:
 Â类型'对象'的争论ä¸èƒ½åˆ†é…给类型的å‚æ•°   ' {} []&#39 ;. '对象' typeå¯ä»¥åˆ†é…ç»™å¾ˆå°‘çš„å…¶ä»–ç±»åž‹ã€‚éš¾é“ Â Â ä½ çš„æ„æ€æ˜¯ä½¿ç”¨ï¼†ï¼ƒ39; any'而ä¸æ˜¯ï¼Ÿè´¢äº§åŒ…括'ä¸è§äº†   在类型'对象'。
所以我å°è¯•å°†å…¶æ›´æ”¹ä¸ºï¼š
this.users = new MatTableDataSource<any>(response);
但ä»ç„¶æ˜¯åŒæ ·çš„错误。 response
看起æ¥åƒè¿™æ ·ï¼š
[{
userId: 123,
username: 'Tom'
}, {
userId: 456,
username: 'Joe'
}]
知é“如何摆脱错误å—?
修改
å¦‚æžœæˆ‘è¿™æ ·åšï¼Œåº”该æåŠï¼š
this.users = new MatTableDataSource([response]);
é”™è¯¯æ¶ˆå¤±ä½†è¡¨æ ¼ä¸èµ·ä½œç”¨ï¼Œå› ä¸ºæ ¼å¼ä¸æ˜¯è¡¨æ ¼é¢„期的æ£ç¡®æ ¼å¼ã€‚åªæ˜¯æ³¨æ„到这一点,以防它å¯èƒ½æ˜¯ä»€ä¹ˆåŽŸå› ...
ç”案 0 :(得分:4)
 Â“对象â€ç±»åž‹çš„å‚æ•°ä¸èƒ½åˆ†é…给“{} []â€ç±»åž‹çš„å‚数。
这并ä¸æ„味ç€MatTableDataSource
接å—错误的å‚数,而是表示您的response
ç±»åž‹é”™è¯¯ã€‚ä½ åº”è¯¥æ˜Žç¡®åœ°æŒ‡å‡ºï¼š
(response: {userId: number, username: string }[]) =>
æˆ–åœ¨ä¼ é€’æ—¶è¿™æ ·åšï¼š
new MatTableDataSource(response as {userId: number, username: string }[])
ç”案 1 :(得分:0)
您的subscribe()
函数需è¦ä¼ 递any
:
在您的情况下(如注释ä¸æ‰€è¿°ï¼‰ï¼š
this.users = new MatTableDataSource(<any> response);
在æŸäº›æƒ…况下,å¯èƒ½æ˜¯è¿™æ ·çš„:
const myLocalData = this.getData(<any> response);