TypeScript and Dictionary Index
I define a Interface, then I define a dictionary variables and want to look up the dictionary based on the key.
interface GroupSettingsMethod { (parameters: any) : Promise<string> | void };
const groupSettingsMethods = {
'/meeting/create': { 'method': changeGroupMeetingCount },
'/meeting/update': { 'method': getGroupMeetingCount }
};
..snip…
const methodImpl: GroupSettingsMethod = groupSettingsMethods[uriSuffix.toLowerCase()].method || null;
…snip…
It should lookup the different interface based not he uriSuffix. But in my VS code, it shows up
[ts] Element implicitly has an ‘any’ type because type ….. has no index signature
I checked some articles here
https://basarat.gitbooks.io/typescript/docs/types/index-signatures.html
https://dev.to/kingdaro/indexing-objects-in-typescript-1cgi
Finally, I solve that by change the dictionary definition to
const groupSettingsMethods:{ [index:string] : any } = {
'/meeting/create': { 'method': changeGroupMeetingCount },
'/meeting/update': { 'method': getGroupMeetingCount }
};
References:
https://basarat.gitbooks.io/typescript/docs/types/index-signatures.html
https://dev.to/kingdaro/indexing-objects-in-typescript-1cgi
I define a Interface, then I define a dictionary variables and want to look up the dictionary based on the key.
interface GroupSettingsMethod { (parameters: any) : Promise<string> | void };
const groupSettingsMethods = {
'/meeting/create': { 'method': changeGroupMeetingCount },
'/meeting/update': { 'method': getGroupMeetingCount }
};
..snip…
const methodImpl: GroupSettingsMethod = groupSettingsMethods[uriSuffix.toLowerCase()].method || null;
…snip…
It should lookup the different interface based not he uriSuffix. But in my VS code, it shows up
[ts] Element implicitly has an ‘any’ type because type ….. has no index signature
I checked some articles here
https://basarat.gitbooks.io/typescript/docs/types/index-signatures.html
https://dev.to/kingdaro/indexing-objects-in-typescript-1cgi
Finally, I solve that by change the dictionary definition to
const groupSettingsMethods:{ [index:string] : any } = {
'/meeting/create': { 'method': changeGroupMeetingCount },
'/meeting/update': { 'method': getGroupMeetingCount }
};
References:
https://basarat.gitbooks.io/typescript/docs/types/index-signatures.html
https://dev.to/kingdaro/indexing-objects-in-typescript-1cgi