variable globales declarar acceder coffeescript

coffeescript - globales - Cómo comprobar si la variable es tipo de cadena



variable scope (3)

Estoy obteniendo datos con ajax, y el resultado puede ser una matriz de resultados o una declaración de cadena como "no se encontraron resultados". ¿Cómo puedo saber si obtuve algún resultado o no? He intentado este enfoque:

if result == String do something

pero no funciona, al igual que

if typeof(result) == "string" do something

¿Hay alguna otra función que pueda ayudarme a obtener el tipo de variable? O tal vez pueda probarlo para el tipo Array, también sería muy útil


Compruebe que el resultado es una cadena:

Esto se puede hacer de la manera en que muchas libraries comunes lo hacen:

isString = (obj) -> toString.call(obj) == ''[object String]''

Comprueba que el resultado es un Array:

También puede intentar usar la función Array.isArray nativa y volver a un estilo similar de verificación de tipos como se usó anteriormente:

isArray = Array.isArray or (obj) -> toString.call(obj) == ''[object Array]''


¿Esto funciona?

if Object.prototype.toString.call(result) == ''[object String]'' do something


utilizar typeof

doSomething(result) if typeof result is ''string''

Tenga en cuenta que typeof es un operador, no una función, por lo que no escribe typeof(result)

También puedes hacer esto

doSomethingElse(result) if typeof result isnt ''string''

o incluso

return if typeof result is ''string'' doSomething result else doSomethingElse result

Consulte http://coffeescript.org/#conditionals para obtener más información sobre Coffeescript condicionales de Coffeescript .