Iam using typescript and iam trying to get the accounts from the current user like its showed on the metamask official documentation Metamask Doc:
const accounts = await window.ethereum.request({
method: "eth_accounts",
});
The call to the request function returns a result with the Maybe<unknown> type.
Then iam trying to access the first element of accounts like this because its supposed to be an array of string :
accounts[0]
But i have the following errors:
Object is possibly 'null' or 'undefined'.ts(2533)
Element implicitly has an 'any' type because expression of type '0' can't be used to index type 'Partial<unknown>'.
Property '0' does not exist on type 'Partial<unknown>'.ts(7053)
So, how can i manage to handle this situation?
I need to properly get the return of the request function and make typescript accept it as an array of string.
Thanks.
CodePudding user response:
The errors indicate that the returned value from the request might be null, undefined or even not-an-array value. So you have to check those cases before accessing its value.
const accounts = await window.ethereum.request({
method: "eth_accounts",
});
if (accounts && Array.isArray(accounts)) {
// Here you can access accounts[0]
} else {
// Handle errors here if accounts is not valid.
}
