# Bug Report <!-- Please fill in each section completely. Thank you! --> ### 🔎 Search Terms properties initialization esnext order initialization fields useDefineForClassFields ### 🕗 Version & Regression Information <!-- When did you start seeing this bug occur? "Bugs" that have existed in TS for a long time are very likely to be FAQs; refer to https://github.com/Microsoft/TypeScript/wiki/FAQ#common-bugs-that-arent-bugs If possible, please try testing the nightly version of TS to see if it's already been fixed. For npm: `typescript@next` This is also the 'Nightly' version in the playground: http://www.typescriptlang.org/play/?ts=Nightly Note: The TypeScript Playground can be used to try older versions of TypeScript. Please keep and fill in the line that best applies: --> - This is the behavior in every version I tried, and I reviewed the FAQ for entries about classes Ref: https://github.com/babel/babel/issues/13779 ### ⏯ Playground Link <!-- A link to a TypeScript Playground "Share" link which shows this behavior The TypeScript Workbench can be used for more complex setups, try https://www.typescriptlang.org/dev/bug-workbench/ As a last resort, you can link to a repo, but these will be slower for us to investigate. --> [Playground link with relevant code (ES2021 target)](https://www.typescriptlang.org/play?useDefineForClassFields=true&target=8#code/HYUw7gBAxgNghgZwRAIogFgIwPZwE4AmEA3gFAQUTBwC2IEAvNNsAtjCAHQzYDmAFABd0ASwSda2AK7BBASgDc5SlBYJBeKVEHY8-AA5TMMEVAiSZggFxUpNTCDxySyigF9Sb-gEZFQA) [Playground link with relevant code (ESNext target)](https://www.typescriptlang.org/play?useDefineForClassFields=true&target=99#code/HYUw7gBAxgNghgZwRAIogFgIwPZwE4AmEA3gFAQUTBwC2IEAvNNsAtjCAHQzYDmAFABd0ASwSda2AK7BBASgDc5SlBYJBeKVEHY8-AA5TMMEVAiSZggFxUpNTCDxySyigF9Sb-gEZFQA) ### 💻 Code <!-- Please post the relevant code sample here as well--> ```ts new class Dashboard { name = console.log(this.amount); constructor(public amount: number) { } }(1); ``` ### 🙁 Actual behavior When targeting ES2021 `this.amount` is initialized first; when targeting ESNext `this.name` is initialized first. ### 🙂 Expected behavior They should be consistent.