Obtener el nombre de una variable en TypeScript
¿Cómo puedo obtener el nombre de una variable en TypeScript? Quiero algo como esto:
var name = "Foo";
alert(getVariableName(name)); //Prints "name"
Respuesta #1
Ampliando la respuesta de basarat, necesitas crear una función que tome como parámetro una función que contendrá el acceso a tu variable. Porque en JavaScript puedes acceder al código de cualquier función, entonces se convierte en una cuestión simple de usar una expresión regular para extraer el nombre de la variable.
var varExtractor = new RegExp("return (.*);");
export function getVariableName<TResult>(name: () => TResult) {
var m = varExtractor.exec(name + "");
if (m == null) throw new Error("The function does not contain a statement matching 'return variableName;'");
return m[1];
}
var foo = "";
console.log(getVariableName(() => foo));
Respuesta #2
Un enfoque es almacenar dichos valores en un objeto:
var o = {
firstName: "Homer",
lastName: "Simpson"
};
No podemos obtener el nombre de o, pero podemos obtener los nombres (o "claves") de sus dos propiedades:
var k = Object.keys(o);
console.log(k[0]); // prints "firstName"
