Defino una clase Chalk en TypeScript y algunos métodos definidos en la función, así:
class Chalk{ public init(): void { for (let color of ['black', 'blue', 'cyan', 'gray', 'green', 'magenta', 'red', 'white', 'yellow']) { this[color] = () => {consol.log(color)} } } }; chalk = new Chalk();pero no puedo acceder a ellos desde el objeto instanciado de Chalk cuando intento ejecutar:
chalk.red();El editor me dice que la tiza no tiene el atributo 'rojo', entonces, ¿qué debo hacer para obtener acceso?
Un mejor enfoque es tener una interfaz Colorful y hacer que Chalk la implemente:
interface Colorful { colors: { [key: string]: () => void } } class Chalk implements Colorful { colors: { [key: string]: () => void }={}; constructor() { for (let color of ['black', 'blue', 'cyan', 'gray', 'green', 'magenta', 'red', 'white', 'yellow']) { this.colors[color] = () => { console.log(color) } } } }; let chalk = new Chalk(); chalk.colors.green();Aquí hay un enlace al patio de recreo