microsoft / microsoft/TypeScript
"const" was transformed to "var" when target is "esnext"
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.4k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 117
Description
🔎 Search Terms
transform, const, var, target, ECMA, esnext
🕗 Version & Regression Information
- This is the behavior in every version I tried from Version 5.4 to Version 5.7.0-dev.20240904
⏯ Playground Link
No response
💻 Code
export const cilBlurLinear : string [ ] = [ , ]
const [ , ] = cilBlurLinear;
🙁 Actual behavior
The JS code generated by tsc is as follows:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cilBlurLinear = void 0;
exports.cilBlurLinear = [,];
var ;
🙂 Expected behavior
“const” should be translated as "const" instead of "var", as the target in my configuration file is "esnext".
Additional information about the issue
tsconfig.json:
{
"compilerOptions": {
"target": "ESNext",
"module": "esnext",
"moduleResolution": "Node",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"lib": ["es2023","dom"],
"noEmitOnError":true,
"force":true,
"strict":true
},
"include": [
"TScorpus/*"
],
"exclude": [
"node_modules"
]
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the provided code with tsc and the shown tsconfig.json, then inspect the compiler's handling of const destructuring when the target is ESNext. Done means the emitted JavaScript preserves const and does not produce the invalid var output; add a regression test for this case if the repository's existing compiler tests identify a suitable location.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100