Older versions of Turf used this one code for every “the shape of this code isn’t right” mistake: a missing punctuation mark, a bracket that is never closed, a name or type that is missing. Nothing produces E015 any more. If you are reading an old log, or an old tutorial, that is why you found it.
Each of those mistakes now has its own code, and its own explanation, so you are told which shape is wrong:
Example
E099 a string or character literal was never closedE100 an escape sequence Turf doesn't know (like `\q`)E101 a character literal that isn't exactly one characterE102 a missing semicolon `;`E103 something that doesn't belong at this spotE104 a bracket, brace or parenthesis that is never closedE105 a missing commaE106 a missing colonE107 a missing opening `{` or `(`E108 a name was expected (a variable, function, field, ...)E109 a type was expectedE110 a specific word or symbol was expected (`in`, `while`, `->`, ...)E111 code nested too deeplyE112 `void` used as the type of a variable, field or parameterE113 syntax that used to exist and has been replacedE114 the same name declared twice inside a struct, enum, error or machineE115 an operator declared with the wrong number of operandsE116 an `extern` function written with a bodyE117 an `error` declaration that mixes the `;` and `{ }` formsE118 a statement outside any functionE119 no `main` functionE120 a `for` loop form that isn't supportedE123 an array size that isn't a positive whole numberRun turf --explain with the code your error shows.
Run turf --explain E015 in a terminal to read this again.