My best guess is that curly braces exist for the parser, as some type specifications may have spaces in them.
eg. Object with string and numeric values:
{Object.<string, number>}
Depending on the parser, a simple type (such as a string) may not need curly braces, since the parser will consider the first space as the end of the type declaration.
edit: Further reading suggests that curly braces are required, so omitting them is a mistake, but some (if not most / all) parsers will forgive inaccurate type definitions if they can be processed as described above.
TL; DR: They are important, but you can leave without using them in some cases.
source share