Получение ошибки при определении типа объекта » » не может быть присвоено типу в сценарии сборки (разработка графика)

#subgraph #assemblyscript #thegraph

Вопрос:

Я разрабатываю подграф для индексирования событий блокчейна, но я получаю ошибку при определении и объекте

 ⠋ Compile subgraphERROR TS2322: Type 'lt;objectgt;' is not assignable to type 'i32'.   export const FARMS_CONTRACT_NAMES = {  BALANCER_LIQUIDITY: 'balancerLiquidity',  GIV_LIQUIDITY: 'givLiquidity',  GIV_ETH: 'givETH',  GIV_HNY: 'givHny' };    

Ответ №1:

После некоторых проб и ошибок изменение этого таким образом решило мою проблему:

 export const BALANCER_LIQUIDITY = 'balancerLM'; export const GIV_LIQUIDITY = 'givLM'; export const GARDEN_POOL = 'gardenPool'; export const GIV_ETH = 'givETH'; export const GIV_HNY = 'givHNYPool';  

Я думаю, что у скрипта сборки есть проблемы с определением объектов ( во входных параметрах функций вы не можете использовать object {} )

Ответ №2:

Если вы хотите использовать объект для своей конфигурации, вам необходимо определить для него класс, так как AS не имеет неявных объектов:

 class Config {  BALANCER_LIQUIDITY: string;  GIV_LIQUIDITY: string;  GIV_ETH: string;  GIV_HNY: string; }  export const FARMS_CONTRACT_NAMES: Config = {  BALANCER_LIQUIDITY: 'balancerLiquidity',  GIV_LIQUIDITY: 'givLiquidity',  GIV_ETH: 'givETH',  GIV_HNY: 'givHny' };  

Но экспорт значений по отдельности также имеет свои преимущества:

  • Меньше исходного кода
  • Вы можете импортировать только части конфигурации
  • Никаких накладных расходов класса

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

1. Хорошая идея, приятно это знать, это помогло бы мне в других ситуациях