CoffeeLint plugin for prohibiting accessor with existential operator.
When coffeescript transpile to ES2015(ES6) by transpiler(decaf, decaffeinate), accessor with existential operator is transpiled complex code.
Example:
# coffeescript sample using accessor with existential operator
hoge?.fuga?.piyo()
# transpiled JS by decaf
var ref;
typeof hoge !== "undefined" && hoge !== null ? ((ref = hoge.fuga) != null ? ref.piyo() : void 0) : void 0;
I recommend fix coffeescript before transpile.
$ npm install --save-dev coffeelint-no-accessor-existential-operator
Put this in your coffeelint config
{
"no_accessor_existential_operator": {
"module": "coffeelint-no-accessor-existential-operator"
}
}
# Bad
hoge?.fuga
doit() if hoge?.fuga?
# Good (Note that following code not equals completely)
hoge.fuga if hoge?
doit() if hoge && hoge.fuga?
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request