Issue
interface User extends Function {
player: number,
units: number[],
sites: string[],
}
class User extends Function {
constructor() {
super('return this.player')
[this.player, this.units, this.sites] = getBelongings(); // Destructuring Assignment
}
}
const me = new User();
function getBelongings(): [number, number[], string[]] {
return [1, [1], ['1']]
}
The above seems nice, and I think my assignment has no problem.
But It says: Type 'string[]' cannot be used as an index type.(2538)
I tried destructuring some times before and now have no idea about what's wrong.
Is it a TypeScript problem or a wrong syntax? And how can I make it operate well? Thanks a lot.
Solution
You need a semi colon after the call to super, or it's trying to run both statements together.
The code, as it stands, reads as an index accessor to the return value from super, instead of a new statement.
super('return this.player'); // <-- insert semi colon
[this.player, this.units, this.sites] = getBelongings();
Answered By - Dave Meehan
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.