Элемент неявно имеет тип «any» , потому что выражение типа » any » нельзя использовать для индексирования типа в узлах и надежности

#javascript #node.js #typescript #solidity

Вопрос:

мне нужны определенные сети в моем контракте . я использую nodejs и набираю скрипт .

я написал этот код :

     let networkId: any = await global.web3.eth.net.getId();
    let tetherData = await Tether.networks[networkId];
 

но это показывает мне эту ошибку :

Элемент неявно имеет тип «any», потому что выражение типа » any «нельзя использовать для индексирования типа» {}». ts(7053)

теперь, как я могу решить эту проблему ?

это файл json моего контракта

введите описание изображения здесь

Комментарии:

1. Добавить let tetherData:any ?

2. У @JeremyThille все еще есть проблема

Ответ №1:

 let networkId: number = await global.web3.eth.net.getId();
let tetherData = await Tether.networks[(networkId as number)];
 

Почему?:

 getId(callback?: (error: Error, id: number) => void): Promise<number>;
                                                              ^^^^^^
 

https://github.com/ChainSafe/web3.js/blob/ed1011438c3a7e35da8390998f6d1cb9b34db014/packages/web3-core/types/index.d.ts#L253

Комментарии:

1. все еще показывай мне эту ошибку

2. я использую web3js не web3-core

3. web3-ядро-это зависимость от web3js

4. и все же у меня есть проблема . моя проблема в этой строке : let tetherData = await Tether.networks[networkId];

5. обновленный ответ с as number