Me gustaría permitir que un usuario ingrese alguna entrada y que el programa la analice como un tipo js, si puede. Por ejemplo, en lo que el usuario escribe en la entrada de texto es:
¿Lograría lo siguiente de una manera muy básica, ignorando los objetos anidados y demás?
function parseValueFromText(text) { try { return JSON.parse(text); } catch(e) { if (e instanceof SyntaxError) { return text; } else { throw e; } } } let a=parseValueFromText('hello'), b=parseValueFromText(123); console.log(a, typeof a); console.log(b, typeof b);Su implementación es bastante cercana, pero si JSON. parse da como resultado una cadena, entonces probablemente desee la cadena original, no el resultado del análisis.
Además, creo que cualquier excepción debería dar como resultado la cadena original.
function parseValueFromText(text) { try { const result = JSON.parse(text); if (typeof result !== 'string') return result; } catch {} return text; }