Como suelo hacer las cosas es esto:
enum tmp { a, b } const doStuff = (val: tmp) => { console.log(val); } doStuff(tmp.b); // logs 1Pero una biblioteca que uso está haciendo algo como esto:
interface tmpMap { a: 0; b: 1; } const tmp: tmpMap;Así que traté de hacer esto:
const doStuff = (val: tmpMap) => { console.log(val); } doStuff(tmp.b);Pero esto arroja un montón de errores y simplemente no funciona.
La variable 'tmp' se usa antes de ser asignada.
El argumento de tipo 'número' no se puede asignar al parámetro de tipo 'tmpMap'.
Aquí hay un enlace al patio de recreo.
¿Hay alguna manera de usar esta configuración de la misma manera que la configuración de enumeración?
interface tmpMap { a: 0; b: 1; } // You'll have to actually assign the constant declare const tmp: tmpMap; const doStuff = (val: tmpMap[keyof tmpMap]) => { console.log(val); } doStuff(tmp.b);