Как мне избежать зарезервированных слов CoffeeScript?

#coffeescript #qunit

#coffeescript #qunit

Вопрос:

Я пытаюсь запустить некоторые модульные тесты, используя QUnit, написанный на CoffeeScript, но, похоже, есть некоторые зарезервированные слова, которые вызывают проблемы, в первую очередь «not». Есть ли способ избежать зарезервированного слова CoffeeScript? Вот простой тест, который демонстрирует проблему:

 module "Sad face test"

test "will not compile", ->
    not false, "holy crap this creates a syntax error :-("
  

Генерируемая ошибка — «Ошибка синтаксического анализа в строке 3: неожиданное ‘,'»

Комментарии:

1. Ваш вопрос заключается в том, как вызвать функцию с именем «not», верно?

2. ДА. «Not» — это функция в qunit, но также является ключевым словом coffeescript.

Ответ №1:

Лучший ответ, который я смог найти, — это перейти в JavaScript и псевдоним функции:

 notEqual = `not`

module "Sad face test"

test "will not compile", ->
    notEqual false, "holy crap this creates a syntax error :-("
  

Хотя похоже not , что это не функция в последней версии QUnit, поэтому в данном конкретном случае вам может не понадобиться экранировать зарезервированное слово CoffeeScript.

Комментарии:

1. Может быть уменьшено до: notEqual = `not`

2. Мне нравится этот ответ, но ответ Тревора кажется мне более чистым

Ответ №2:

not Функция глобальная, поэтому она фактически привязана к window , верно? Тогда вместо экранирования обратного хода вы можете просто написать

 window.not
  

вместо not ; или

 notEqual = window.not
  

Комментарии:

1. похоже, что модуль «Sad face test» тест «не будет компилироваться», -> window.not false, «черт возьми, это создает синтаксическую ошибку:-(» отлично работает, спасибо!