eslint/eslint

Bug: no-use-before-define - Can use undefined variables in a function that is passed as a parameter and then executed

Open

#20.014 aperta il 18 ago 2025

Vedi su GitHub
 (21 commenti) (0 reazioni) (1 assegnatario)JavaScript (4354 fork)batch import
acceptedbughelp wantedneeds bikesheddingrepro:yes

Metriche repository

Star
 (24.110 star)
Metriche merge PR
 (Merge medio 5g 15h) (46 PR mergiate in 30 g)

Descrizione

Environment

ESLint Playground

What parser are you using?

@typescript-eslint/parser

What did you do?

function TestFunction <T, U> (array: T[], fn: (elem: T) => U): U[] {
    const output: U[] = [];

    for (const arr of array) {
        output.push(fn(arr));
    }
    return output;
}

const arr = [1, 2];

const a = TestFunction(
    arr,
    (T) => {
        console.log(`blah: ${a}`);
        return T;
    }
);

console.log(`blah: ${a}`);

What did you expect to happen?

An error on the usage of the variable a within the function that is passed to TestFunction as it's used before it's defined and will error at runtime.

What actually happened?

No lint error. Will error at runtime.

Link to Minimal Reproducible Example

https://eslint.org/play/#eyJ0ZXh0IjoiZnVuY3Rpb24gVGVzdEZ1bmN0aW9uIDxULCBVPiAoYXJyYXk6IFRbXSwgZm46IChlbGVtOiBUKSA9PiBVKTogVVtdIHtcbiAgICBjb25zdCBvdXRwdXQ6IFVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBhcnIgb2YgYXJyYXkpIHtcbiAgICAgICAgb3V0cHV0LnB1c2goZm4oYXJyKSk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59XG5cbmNvbnN0IGFyciA9IFsxLCAyXTtcblxuY29uc3QgYSA9IFRlc3RGdW5jdGlvbihcbiAgICBhcnIsXG4gICAgKFQpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coYGJsYWg6ICR7YX1gKTtcbiAgICAgICAgcmV0dXJuIFQ7XG4gICAgfVxuKTtcblxuY29uc29sZS5sb2coYGJsYWg6ICR7YX1gKTtcbiIsIm9wdGlvbnMiOnsicnVsZXMiOnsiYWNjZXNzb3ItcGFpcnMiOlsiZXJyb3IiXSwiYXJyYXktYnJhY2tldC1uZXdsaW5lIjpbImVycm9yIl0sImFycmF5LWJyYWNrZXQtc3BhY2luZyI6WyJlcnJvciJdLCJhcnJheS1jYWxsYmFjay1yZXR1cm4iOlsiZXJyb3IiXSwiYXJyb3ctYm9keS1zdHlsZSI6WyJlcnJvciJdLCJhcnJvdy1wYXJlbnMiOlsiZXJyb3IiXSwiYXJyb3ctc3BhY2luZyI6WyJlcnJvciJdLCJibG9jay1zY29wZWQtdmFyIjpbImVycm9yIl0sImJsb2NrLXNwYWNpbmciOlsiZXJyb3IiXSwiYnJhY2Utc3R5bGUiOlsiZXJyb3IiXSwiY2FsbGJhY2stcmV0dXJuIjpbImVycm9yIl0sImNhbWVsY2FzZSI6WyJlcnJvciJdLCJjbGFzcy1tZXRob2RzLXVzZS10aGlzIjpbImVycm9yIl0sImNvbW1hLWRhbmdsZSI6WyJlcnJvciJdLCJjb21tYS1zcGFjaW5nIjpbImVycm9yIl0sImNvbW1hLXN0eWxlIjpbImVycm9yIl0sImNvbXBsZXhpdHkiOlsiZXJyb3IiXSwiY29tcHV0ZWQtcHJvcGVydHktc3BhY2luZyI6WyJlcnJvciJdLCJjb25zaXN0ZW50LXJldHVybiI6WyJlcnJvciJdLCJjb25zaXN0ZW50LXRoaXMiOlsiZXJyb3IiXSwiY29uc3RydWN0b3Itc3VwZXIiOlsiZXJyb3IiXSwiY3VybHkiOlsiZXJyb3IiXSwiZGVmYXVsdC1jYXNlIjpbImVycm9yIl0sImRlZmF1bHQtY2FzZS1sYXN0IjpbImVycm9yIl0sImRlZmF1bHQtcGFyYW0tbGFzdCI6WyJlcnJvciJdLCJkb3QtbG9jYXRpb24iOlsiZXJyb3IiXSwiZG90LW5vdGF0aW9uIjpbImVycm9yIl0sImVvbC1sYXN0IjpbImVycm9yIl0sImVxZXFlcSI6WyJlcnJvciJdLCJmb3ItZGlyZWN0aW9uIjpbImVycm9yIl0sImZ1bmMtY2FsbC1zcGFjaW5nIjpbImVycm9yIl0sImZ1bmMtbmFtZS1tYXRjaGluZyI6WyJlcnJvciJdLCJmdW5jLW5hbWVzIjpbImVycm9yIl0sImZ1bmN0aW9uLWNhbGwtYXJndW1lbnQtbmV3bGluZSI6WyJlcnJvciJdLCJmdW5jdGlvbi1wYXJlbi1uZXdsaW5lIjpbImVycm9yIl0sImdlbmVyYXRvci1zdGFyLXNwYWNpbmciOlsiZXJyb3IiXSwiZ2V0dGVyLXJldHVybiI6WyJlcnJvciJdLCJnbG9iYWwtcmVxdWlyZSI6WyJlcnJvciJdLCJncm91cGVkLWFjY2Vzc29yLXBhaXJzIjpbImVycm9yIl0sImd1YXJkLWZvci1pbiI6WyJlcnJvciJdLCJoYW5kbGUtY2FsbGJhY2stZXJyIjpbImVycm9yIl0sImlkLWJsYWNrbGlzdCI6WyJlcnJvciJdLCJpZC1kZW55bGlzdCI6WyJlcnJvciJdLCJpZC1tYXRjaCI6WyJlcnJvciJdLCJpbXBsaWNpdC1hcnJvdy1saW5lYnJlYWsiOlsiZXJyb3IiXSwiaW5kZW50IjpbImVycm9yIl0sImluaXQtZGVjbGFyYXRpb25zIjpbImVycm9yIl0sImpzeC1xdW90ZXMiOlsiZXJyb3IiXSwia2V5LXNwYWNpbmciOlsiZXJyb3IiXSwia2V5d29yZC1zcGFjaW5nIjpbImVycm9yIl0sImxpbmUtY29tbWVudC1wb3NpdGlvbiI6WyJlcnJvciJdLCJsaW5lYnJlYWstc3R5bGUiOlsiZXJyb3IiXSwibGluZXMtYXJvdW5kLWNvbW1lbnQiOlsiZXJyb3IiXSwibGluZXMtYXJvdW5kLWRpcmVjdGl2ZSI6WyJlcnJvciJdLCJsaW5lcy1iZXR3ZWVuLWNsYXNzLW1lbWJlcnMiOlsiZXJyb3IiXSwibG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycyI6WyJlcnJvciJdLCJtYXgtY2xhc3Nlcy1wZXItZmlsZSI6WyJlcnJvciJdLCJtYXgtZGVwdGgiOlsiZXJyb3IiXSwibWF4LWxpbmVzIjpbImVycm9yIl0sIm1heC1saW5lcy1wZXItZnVuY3Rpb24iOlsiZXJyb3IiXSwibWF4LW5lc3RlZC1jYWxsYmFja3MiOlsiZXJyb3IiXSwibWF4LXBhcmFtcyI6WyJlcnJvciJdLCJtYXgtc3RhdGVtZW50cyI6WyJlcnJvciJdLCJtYXgtc3RhdGVtZW50cy1wZXItbGluZSI6WyJlcnJvciJdLCJtdWx0aWxpbmUtY29tbWVudC1zdHlsZSI6WyJlcnJvciJdLCJtdWx0aWxpbmUtdGVybmFyeSI6WyJlcnJvciJdLCJuZXctcGFyZW5zIjpbImVycm9yIl0sIm5ld2xpbmUtYWZ0ZXItdmFyIjpbImVycm9yIl0sIm5ld2xpbmUtcGVyLWNoYWluZWQtY2FsbCI6WyJlcnJvciJdLCJuby1hbGVydCI6WyJlcnJvciJdLCJuby1hcnJheS1jb25zdHJ1Y3RvciI6WyJlcnJvciJdLCJuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yIjpbImVycm9yIl0sIm5vLWF3YWl0LWluLWxvb3AiOlsiZXJyb3IiXSwibm8tYml0d2lzZSI6WyJlcnJvciJdLCJuby1idWZmZXItY29uc3RydWN0b3IiOlsiZXJyb3IiXSwibm8tY2FsbGVyIjpbImVycm9yIl0sIm5vLWNhc2UtZGVjbGFyYXRpb25zIjpbImVycm9yIl0sIm5vLWNhdGNoLXNoYWRvdyI6WyJlcnJvciJdLCJuby1jbGFzcy1hc3NpZ24iOlsiZXJyb3IiXSwibm8tY29tcGFyZS1uZWctemVybyI6WyJlcnJvciJdLCJuby1jb25kLWFzc2lnbiI6WyJlcnJvciJdLCJuby1jb25mdXNpbmctYXJyb3ciOlsiZXJyb3IiXSwibm8tY29uc3QtYXNzaWduIjpbImVycm9yIl0sIm5vLWNvbnN0YW50LWJpbmFyeS1leHByZXNzaW9uIjpbImVycm9yIl0sIm5vLWNvbnN0YW50LWNvbmRpdGlvbiI6WyJlcnJvciJdLCJuby1jb25zdHJ1Y3Rvci1yZXR1cm4iOlsiZXJyb3IiXSwibm8tY29udGludWUiOlsiZXJyb3IiXSwibm8tY29udHJvbC1yZWdleCI6WyJlcnJvciJdLCJuby1kZWJ1Z2dlciI6WyJlcnJvciJdLCJuby1kZWxldGUtdmFyIjpbImVycm9yIl0sIm5vLWRpdi1yZWdleCI6WyJlcnJvciJdLCJuby1kdXBlLWFyZ3MiOlsiZXJyb3IiXSwibm8tZHVwZS1jbGFzcy1tZW1iZXJzIjpbImVycm9yIl0sIm5vLWR1cGUtZWxzZS1pZiI6WyJlcnJvciJdLCJuby1kdXBlLWtleXMiOlsiZXJyb3IiXSwibm8tZHVwbGljYXRlLWNhc2UiOlsiZXJyb3IiXSwibm8tZHVwbGljYXRlLWltcG9ydHMiOlsiZXJyb3IiXSwibm8tZWxzZS1yZXR1cm4iOlsiZXJyb3IiXSwibm8tZW1wdHkiOlsiZXJyb3IiXSwibm8tZW1wdHktY2hhcmFjdGVyLWNsYXNzIjpbImVycm9yIl0sIm5vLWVtcHR5LWZ1bmN0aW9uIjpbImVycm9yIl0sIm5vLWVtcHR5LXBhdHRlcm4iOlsiZXJyb3IiXSwibm8tZW1wdHktc3RhdGljLWJsb2NrIjpbImVycm9yIl0sIm5vLWVxLW51bGwiOlsiZXJyb3IiXSwibm8tZXZhbCI6WyJlcnJvciJdLCJuby1leC1hc3NpZ24iOlsiZXJyb3IiXSwibm8tZXh0ZW5kLW5hdGl2ZSI6WyJlcnJvciJdLCJuby1leHRyYS1iaW5kIjpbImVycm9yIl0sIm5vLWV4dHJhLWJvb2xlYW4tY2FzdCI6WyJlcnJvciJdLCJuby1leHRyYS1sYWJlbCI6WyJlcnJvciJdLCJuby1leHRyYS1wYXJlbnMiOlsiZXJyb3IiXSwibm8tZXh0cmEtc2VtaSI6WyJlcnJvciJdLCJuby1mYWxsdGhyb3VnaCI6WyJlcnJvciJdLCJuby1mbG9hdGluZy1kZWNpbWFsIjpbImVycm9yIl0sIm5vLWZ1bmMtYXNzaWduIjpbImVycm9yIl0sIm5vLWdsb2JhbC1hc3NpZ24iOlsiZXJyb3IiXSwibm8taW1wbGljaXQtY29lcmNpb24iOlsiZXJyb3IiXSwibm8taW1wbGljaXQtZ2xvYmFscyI6WyJlcnJvciJdLCJuby1pbXBsaWVkLWV2YWwiOlsiZXJyb3IiXSwibm8taW1wb3J0LWFzc2lnbiI6WyJlcnJvciJdLCJuby1pbmxpbmUtY29tbWVudHMiOlsiZXJyb3IiXSwibm8taW5uZXItZGVjbGFyYXRpb25zIjpbImVycm9yIl0sIm5vLWludmFsaWQtcmVnZXhwIjpbImVycm9yIl0sIm5vLWludmFsaWQtdGhpcyI6WyJlcnJvciJdLCJuby1pcnJlZ3VsYXItd2hpdGVzcGFjZSI6WyJlcnJvciJdLCJuby1pdGVyYXRvciI6WyJlcnJvciJdLCJuby1sYWJlbC12YXIiOlsiZXJyb3IiXSwibm8tbGFiZWxzIjpbImVycm9yIl0sIm5vLWxvbmUtYmxvY2tzIjpbImVycm9yIl0sIm5vLWxvbmVseS1pZiI6WyJlcnJvciJdLCJuby1sb29wLWZ1bmMiOlsiZXJyb3IiXSwibm8tbG9zcy1vZi1wcmVjaXNpb24iOlsiZXJyb3IiXSwibm8tbWlzbGVhZGluZy1jaGFyYWN0ZXItY2xhc3MiOlsiZXJyb3IiXSwibm8tbWl4ZWQtb3BlcmF0b3JzIjpbImVycm9yIl0sIm5vLW1peGVkLXJlcXVpcmVzIjpbImVycm9yIl0sIm5vLW1peGVkLXNwYWNlcy1hbmQtdGFicyI6WyJlcnJvciJdLCJuby1tdWx0aS1hc3NpZ24iOlsiZXJyb3IiXSwibm8tbXVsdGktc3BhY2VzIjpbImVycm9yIl0sIm5vLW11bHRpLXN0ciI6WyJlcnJvciJdLCJuby1tdWx0aXBsZS1lbXB0eS1saW5lcyI6WyJlcnJvciJdLCJuby1uYXRpdmUtcmVhc3NpZ24iOlsiZXJyb3IiXSwibm8tbmVnYXRlZC1jb25kaXRpb24iOlsiZXJyb3IiXSwibm8tbmVnYXRlZC1pbi1saHMiOlsiZXJyb3IiXSwibm8tbmVzdGVkLXRlcm5hcnkiOlsiZXJyb3IiXSwibm8tbmV3IjpbImVycm9yIl0sIm5vLW5ldy1mdW5jIjpbImVycm9yIl0sIm5vLW5ldy1uYXRpdmUtbm9uY29uc3RydWN0b3IiOlsiZXJyb3IiXSwibm8tbmV3LW9iamVjdCI6WyJlcnJvciJdLCJuby1uZXctcmVxdWlyZSI6WyJlcnJvciJdLCJuby1uZXctc3ltYm9sIjpbImVycm9yIl0sIm5vLW5ldy13cmFwcGVycyI6WyJlcnJvciJdLCJuby1ub25vY3RhbC1kZWNpbWFsLWVzY2FwZSI6WyJlcnJvciJdLCJuby1vYmotY2FsbHMiOlsiZXJyb3IiXSwibm8tb2JqZWN0LWNvbnN0cnVjdG9yIjpbImVycm9yIl0sIm5vLW9jdGFsIjpbImVycm9yIl0sIm5vLW9jdGFsLWVzY2FwZSI6WyJlcnJvciJdLCJuby1wYXJhbS1yZWFzc2lnbiI6WyJlcnJvciJdLCJuby1wYXRoLWNvbmNhdCI6WyJlcnJvciJdLCJuby1wbHVzcGx1cyI6WyJlcnJvciJdLCJuby1wcm9jZXNzLWVudiI6WyJlcnJvciJdLCJuby1wcm9jZXNzLWV4aXQiOlsiZXJyb3IiXSwibm8tcHJvbWlzZS1leGVjdXRvci1yZXR1cm4iOlsiZXJyb3IiXSwibm8tcHJvdG8iOlsiZXJyb3IiXSwibm8tcHJvdG90eXBlLWJ1aWx0aW5zIjpbImVycm9yIl0sIm5vLXJlZGVjbGFyZSI6WyJlcnJvciJdLCJuby1yZWdleC1zcGFjZXMiOlsiZXJyb3IiXSwibm8tcmVzdHJpY3RlZC1leHBvcnRzIjpbImVycm9yIl0sIm5vLXJlc3RyaWN0ZWQtZ2xvYmFscyI6WyJlcnJvciJdLCJuby1yZXN0cmljdGVkLWltcG9ydHMiOlsiZXJyb3IiXSwibm8tcmVzdHJpY3RlZC1tb2R1bGVzIjpbImVycm9yIl0sIm5vLXJlc3RyaWN0ZWQtcHJvcGVydGllcyI6WyJlcnJvciJdLCJuby1yZXN0cmljdGVkLXN5bnRheCI6WyJlcnJvciJdLCJuby1yZXR1cm4tYXNzaWduIjpbImVycm9yIl0sIm5vLXJldHVybi1hd2FpdCI6WyJlcnJvciJdLCJuby1zY3JpcHQtdXJsIjpbImVycm9yIl0sIm5vLXNlbGYtYXNzaWduIjpbImVycm9yIl0sIm5vLXNlbGYtY29tcGFyZSI6WyJlcnJvciJdLCJuby1zZXF1ZW5jZXMiOlsiZXJyb3IiXSwibm8tc2V0dGVyLXJldHVybiI6WyJlcnJvciJdLCJuby1zaGFkb3ciOlsiZXJyb3IiXSwibm8tc2hhZG93LXJlc3RyaWN0ZWQtbmFtZXMiOlsiZXJyb3IiXSwibm8tc3BhY2VkLWZ1bmMiOlsiZXJyb3IiXSwibm8tc3BhcnNlLWFycmF5cyI6WyJlcnJvciJdLCJuby1zeW5jIjpbImVycm9yIl0sIm5vLXRhYnMiOlsiZXJyb3IiXSwibm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nIjpbImVycm9yIl0sIm5vLXRlcm5hcnkiOlsiZXJyb3IiXSwibm8tdGhpcy1iZWZvcmUtc3VwZXIiOlsiZXJyb3IiXSwibm8tdGhyb3ctbGl0ZXJhbCI6WyJlcnJvciJdLCJuby10cmFpbGluZy1zcGFjZXMiOlsiZXJyb3IiXSwibm8tdW5hc3NpZ25lZC12YXJzIjpbImVycm9yIl0sIm5vLXVuZGVmLWluaXQiOlsiZXJyb3IiXSwibm8tdW5kZWZpbmVkIjpbImVycm9yIl0sIm5vLXVuZGVyc2NvcmUtZGFuZ2xlIjpbImVycm9yIl0sIm5vLXVuZXhwZWN0ZWQtbXVsdGlsaW5lIjpbImVycm9yIl0sIm5vLXVubW9kaWZpZWQtbG9vcC1jb25kaXRpb24iOlsiZXJyb3IiXSwibm8tdW5uZWVkZWQtdGVybmFyeSI6WyJlcnJvciJdLCJuby11bnJlYWNoYWJsZSI6WyJlcnJvciJdLCJuby11bnJlYWNoYWJsZS1sb29wIjpbImVycm9yIl0sIm5vLXVuc2FmZS1maW5hbGx5IjpbImVycm9yIl0sIm5vLXVuc2FmZS1uZWdhdGlvbiI6WyJlcnJvciJdLCJuby11bnNhZmUtb3B0aW9uYWwtY2hhaW5pbmciOlsiZXJyb3IiXSwibm8tdW51c2VkLWV4cHJlc3Npb25zIjpbImVycm9yIl0sIm5vLXVudXNlZC1sYWJlbHMiOlsiZXJyb3IiXSwibm8tdW51c2VkLXByaXZhdGUtY2xhc3MtbWVtYmVycyI6WyJlcnJvciJdLCJuby11c2UtYmVmb3JlLWRlZmluZSI6WyJlcnJvciJdLCJuby11c2VsZXNzLWFzc2lnbm1lbnQiOlsiZXJyb3IiXSwibm8tdXNlbGVzcy1iYWNrcmVmZXJlbmNlIjpbImVycm9yIl0sIm5vLXVzZWxlc3MtY2FsbCI6WyJlcnJvciJdLCJuby11c2VsZXNzLWNhdGNoIjpbImVycm9yIl0sIm5vLXVzZWxlc3MtY29tcHV0ZWQta2V5IjpbImVycm9yIl0sIm5vLXVzZWxlc3MtY29uY2F0IjpbImVycm9yIl0sIm5vLXVzZWxlc3MtY29uc3RydWN0b3IiOlsiZXJyb3IiXSwibm8tdXNlbGVzcy1lc2NhcGUiOlsiZXJyb3IiXSwibm8tdXNlbGVzcy1yZW5hbWUiOlsiZXJyb3IiXSwibm8tdXNlbGVzcy1yZXR1cm4iOlsiZXJyb3IiXSwibm8tdmFyIjpbImVycm9yIl0sIm5vLXZvaWQiOlsiZXJyb3IiXSwibm8td2FybmluZy1jb21tZW50cyI6WyJlcnJvciJdLCJuby13aGl0ZXNwYWNlLWJlZm9yZS1wcm9wZXJ0eSI6WyJlcnJvciJdLCJuby13aXRoIjpbImVycm9yIl0sIm5vbmJsb2NrLXN0YXRlbWVudC1ib2R5LXBvc2l0aW9uIjpbImVycm9yIl0sIm9iamVjdC1jdXJseS1uZXdsaW5lIjpbImVycm9yIl0sIm9iamVjdC1jdXJseS1zcGFjaW5nIjpbImVycm9yIl0sIm9iamVjdC1wcm9wZXJ0eS1uZXdsaW5lIjpbImVycm9yIl0sIm9iamVjdC1zaG9ydGhhbmQiOlsiZXJyb3IiXSwib25lLXZhci1kZWNsYXJhdGlvbi1wZXItbGluZSI6WyJlcnJvciJdLCJvcGVyYXRvci1hc3NpZ25tZW50IjpbImVycm9yIl0sIm9wZXJhdG9yLWxpbmVicmVhayI6WyJlcnJvciJdLCJwYWRkaW5nLWxpbmUtYmV0d2Vlbi1zdGF0ZW1lbnRzIjpbImVycm9yIl0sInByZWZlci1hcnJvdy1jYWxsYmFjayI6WyJlcnJvciJdLCJwcmVmZXItY29uc3QiOlsiZXJyb3IiXSwicHJlZmVyLWRlc3RydWN0dXJpbmciOlsiZXJyb3IiXSwicHJlZmVyLWV4cG9uZW50aWF0aW9uLW9wZXJhdG9yIjpbImVycm9yIl0sInByZWZlci1uYW1lZC1jYXB0dXJlLWdyb3VwIjpbImVycm9yIl0sInByZWZlci1udW1lcmljLWxpdGVyYWxzIjpbImVycm9yIl0sInByZWZlci1vYmplY3QtaGFzLW93biI6WyJlcnJvciJdLCJwcmVmZXItb2JqZWN0LXNwcmVhZCI6WyJlcnJvciJdLCJwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzIjpbImVycm9yIl0sInByZWZlci1yZWZsZWN0IjpbImVycm9yIl0sInByZWZlci1yZWdleC1saXRlcmFscyI6WyJlcnJvciJdLCJwcmVmZXItcmVzdC1wYXJhbXMiOlsiZXJyb3IiXSwicHJlZmVyLXNwcmVhZCI6WyJlcnJvciJdLCJwcmVmZXItdGVtcGxhdGUiOlsiZXJyb3IiXSwicXVvdGUtcHJvcHMiOlsiZXJyb3IiXSwicXVvdGVzIjpbImVycm9yIl0sInJhZGl4IjpbImVycm9yIl0sInJlcXVpcmUtYXRvbWljLXVwZGF0ZXMiOlsiZXJyb3IiXSwicmVxdWlyZS1hd2FpdCI6WyJlcnJvciJdLCJyZXF1aXJlLXVuaWNvZGUtcmVnZXhwIjpbImVycm9yIl0sInJlcXVpcmUteWllbGQiOlsiZXJyb3IiXSwicmVzdC1zcHJlYWQtc3BhY2luZyI6WyJlcnJvciJdLCJzZW1pIjpbImVycm9yIl0sInNlbWktc3BhY2luZyI6WyJlcnJvciJdLCJzZW1pLXN0eWxlIjpbImVycm9yIl0sInNvcnQtaW1wb3J0cyI6WyJlcnJvciJdLCJzb3J0LWtleXMiOlsiZXJyb3IiXSwic29ydC12YXJzIjpbImVycm9yIl0sInNwYWNlLWJlZm9yZS1ibG9ja3MiOlsiZXJyb3IiXSwic3BhY2UtYmVmb3JlLWZ1bmN0aW9uLXBhcmVuIjpbImVycm9yIl0sInNwYWNlLWluLXBhcmVucyI6WyJlcnJvciJdLCJzcGFjZS1pbmZpeC1vcHMiOlsiZXJyb3IiXSwic3BhY2UtdW5hcnktb3BzIjpbImVycm9yIl0sInN0cmljdCI6WyJlcnJvciJdLCJzd2l0Y2gtY29sb24tc3BhY2luZyI6WyJlcnJvciJdLCJzeW1ib2wtZGVzY3JpcHRpb24iOlsiZXJyb3IiXSwidGVtcGxhdGUtY3VybHktc3BhY2luZyI6WyJlcnJvciJdLCJ0ZW1wbGF0ZS10YWctc3BhY2luZyI6WyJlcnJvciJdLCJ1bmljb2RlLWJvbSI6WyJlcnJvciJdLCJ1c2UtaXNuYW4iOlsiZXJyb3IiXSwidmFsaWQtdHlwZW9mIjpbImVycm9yIl0sInZhcnMtb24tdG9wIjpbImVycm9yIl0sIndyYXAtaWlmZSI6WyJlcnJvciJdLCJ3cmFwLXJlZ2V4IjpbImVycm9yIl0sInlpZWxkLXN0YXItc3BhY2luZyI6WyJlcnJvciJdLCJ5b2RhIjpbImVycm9yIl19LCJsYW5ndWFnZU9wdGlvbnMiOnsicGFyc2VyT3B0aW9ucyI6eyJlY21hRmVhdHVyZXMiOnsianN4Ijp0cnVlfSwic291cmNlVHlwZSI6Im1vZHVsZSJ9LCJwYXJzZXIiOiJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyIn19fQ==

Participation

  • I am willing to submit a pull request for this issue.

Additional comments

The same rule does give an error if the lines below are above the const a = ... lines.

const b = TestFunction( arr, (T) => { console.log(blah: ${a}); return T; } );

Guida contributor