Я использую пакет Chalk NPM в TypeScript. Если я динамически устанавливаю цвет для Chalk, я получаю ошибку TS. Я мог бы использовать утверждение типа, например chalk[color] as Chalk
, но я бы предпочел использовать предикат типа, если это возможно, что потребовало бы от меня доступа к списку поддерживаемых цветов.
Итак, есть ли способполучить доступ к списку поддерживаемых цветов в Chalk или иным способом решения этой проблемы, не используя утверждения типа и, возможно, не используя предикаты типа?
Может потребоваться параметр strict
в compilerOptions
в tsconfig.json
чтобы включить, чтобы появилась ошибка.
Код ниже, а ошибка в комментариях:
import chalk from 'chalk';
function getColor(): string {
return 'blue';
}
const color = getColor();
/**
* Element implicitly has an 'any' type because expression of type 'string'
* can't be used to index type 'Chalk & { supportsColor: ColorSupport; }'.
*
* No index signature with a parameter of type 'string' was found on type 'Chalk
* & { supportsColor: ColorSupport; }'.ts(7053)
*/
console.log(chalk[color]('test'));