How do I comment in CoffeeScript? "/* this */" doesn't work

75,582

Solution 1

Use a single # sign

# like this

One character seems pretty minimal ;)

Also:

###
This block comment (useful for ©-Copyright info) also gets 
passed on to the browsers HTML /* like this! */
###

Solution 2

The main way to comment is sh/Perl/Ruby/... style # comments:

# This comment goes to the end of the line
# and it won't appear in the "compiled"
# JavaScript version.

You use the block style ### comments when you want a comment to appear in the JavaScript version:

Sometimes you'd like to pass a block comment through to the generated JavaScript. For example, when you need to embed a licensing header at the top of a file. Block comments, which mirror the syntax for heredocs, are preserved in the generated code.

So if you start with

###
PancakeParser is Public Domain
###

then you'd get this JavaScript comment in the generated JavaScript:

/*
PancakeParser is Public Domain
*/

Solution 3

Beware of ###! If you use ### to separate sections of code (as I do) it's awfully surprising when that code stops working as a result.

Share:
75,582

Related videos on Youtube

Eric Hu
Author by

Eric Hu

Github: https://github.com/eric-hu

Updated on October 20, 2022

Comments

  • Eric Hu
    Eric Hu over 1 year

    In what ways can you comment in CoffeeScript?

    The documentation say you can use three hash symbols to start and close a comment block:

    ###
      Comments
      go
      here
    ###
    

    I've found that I can sometimes use the following two formats

    `// backticks allow for straight-JavaScript,
     // but the closing backtick can't be on a comment line (I think?)
    `
    

    Are there a simpler way to insert short comments in CoffeeScript?

    Do NOT use this style**

    Since this is getting a lot of views, I want to emphasize that

    /* Comment goes here */
    

    produces a MATH error when the /* is on its own line.

    As Trevor pointed out in a comment on the question, this is a regular expression, NOT a comment!

    • Trevor Burnham
      Trevor Burnham over 12 years
      If a /*...*/ comment "works," it's because the CoffeeScript compiler is interpreting it as a regex. Definitely not recommended!
    • Pete Alvin
      Pete Alvin about 10 years
      So I guess there is NO WAY in CoffeeScript to have an intra-statement (between characters) comment?
  • Aaron Dufour
    Aaron Dufour over 12 years
    This is usually how you will want to comment; the triple hash is most often used when you want the comment to fall through to the javascript (copyright messages, usually).
  • Gerry
    Gerry almost 12 years
    Ah sigh. The official docs use the single # form all through their examples, but never actually mention it in the text explanations, it only talks about the block comments.
  • Azat
    Azat over 10 years
    Do you know why? We have the code working locally but not on the build server with ###.
  • Mark Wilden
    Mark Wilden over 10 years
    Unfortunately, I noticed this months ago, and I'm not "in that space" right now to have a look at it.
  • Admin
    Admin over 10 years
    Because a pair makes a block comment?
  • nilskp
    nilskp over 9 years
    Unfortunately no way to have block comments that don't show up in output.
  • Nick Perkins
    Nick Perkins almost 9 years
    Would not be so surprising if you used a syntax-highlighting editor, with comments appearing in a different color
  • Jim Mack
    Jim Mack over 7 years
    Why downvote? It's a valid warning. Really, it's saying don't use a solid line of # as a section separator, or you may occasionally get unbalanced block comment pairs.