# Bug Report ### 🔎 Search Terms node 14, tsconfig.json, es2020, recommended ### Problem According to [the Node Target Mapping wiki page](https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping) the recommended `tsconfig.json` for Node 14 is: ```json { "compilerOptions": { "lib": ["ES2020"], "module": "commonjs", "target": "ES2020" } } ``` However, if we look at [the node.green ES2020 feature support table](https://node.green/#ES2020) we will see that Node 14 does not support one feature of ES2020 which is "spread parameters after optional chaining". ### ⏯ Playground Link [Playground link with relevant code](https://www.typescriptlang.org/play?target=7&module=1&pretty=false#code/C4TwDgpgBAYgdlAvFAFCgdJghgJwOYDOAXFAK5wDWcA9gO5wDaAugJRIB8UAbtQJYAmbAD5Q4pADbiA3AChQkKAHkkUAN5QAthGAALavwD8JDNnzEylGvWZtEnHgKgBfWfOgA5Feq279xzOi4hCTkVHSMrBzcfPzOUCJikrIyXLhQAGZwJPAqidIpaVlQnsh5sqk4UNQkysiqLjIy6eQAxsC81AjNcC0omdlwADSiJO7D1UpsqjJQUDjapDgIKDOzGXAG6CbozMMAjLaIyA6x5PwQ6bxwELEAZLers5mb27tQATZIR9GOZxdXNyg90eVXQPj0hi2HyY+0OxxiFnOl2udwea1Em3B+leMKgBy+8N+cCRAP4qxYsicjRanQI1HEEHQ4moeD6rT6Q1E4xYFJkQA) ### 💻 Code `input.ts`: ```ts type Fn = ((...args: unknown[]) => void) | null; type O = { method?: (...args: unknown[]) => void }; type N = { method: (...args: unknown[]) => void } | null; var fn: Fn = null; var n: N = null; var o: O = {}; function func(fn: Fn, n: N, o: O) { return ( fn?.(...[], 1) === void undefined && fn?.(...[], ...[]) === void undefined && o.method?.(...[], 1) === void undefined && n?.method(...[], 1) === void undefined ); } console.log(func(fn, n, o)); ``` Output JavaScript: ```js "use strict"; var fn = null; var n = null; var o = {}; function func(fn, n, o) { return (fn?.(...[], 1) === void undefined && fn?.(...[], ...[]) === void undefined && o.method?.(...[], 1) === void undefined && n?.method(...[], 1) === void undefined); } console.log(func(fn, n, o)); ``` ### 🙁 Actual behavior ``` /Users/antonsavcenko/Development/misc/typescript/src/index.js:5 return (fn?.(...[], 1) === void undefined && ^ TypeError: Function.prototype.apply was called on null, which is a object and not a function at func (/Users/antonsavcenko/Development/misc/typescript/src/index.js:5:5) at Object.<anonymous> (/Users/antonsavcenko/Development/misc/typescript/src/index.js:10:13) at Module._compile (internal/modules/cjs/loader.js:1072:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) at Module.load (internal/modules/cjs/loader.js:937:32) at Function.Module._load (internal/modules/cjs/loader.js:778:12) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12) at internal/main/run_main_module.js:17:47 ``` ### 🙂 Expected behavior ```js true ```