В ошибке всё написано. Прямой импорт из .json выводит недостаточно строгий тип. Метод ожидает что
type
будет строго одно из
"direct" | "fanout" | "headers" | "topic"
, а получает просто
string
.
Можно сделать так:
return (await this.rascal.create(RascalConfig as BrokerConfig))
Но это чревато ошибками в самом конфиге.
Единственное на данный момент надёжное решение(пока не добавят
эту фичу) - держать конфиг в .ts файле в виде:
const RascalConfig: BrokerConfig = { ... }
или
const RascalConfig = { ... } as const
Ну или написать
простенький генератор соответствующего .d.ts к каждому .json.