TDZ means that you cannot access a variable before it has been initialized. However, in Vue script setup sugar, it is possible to access variables before initialization. Why does this happen? Is it due to scope promotion?
I tried in plain js and setup function, message cannot be accessed before initialization
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.4.8/vue.global.min.js"></script>
<script setup>
console.log(message)
const message = "hello vue setup"
</script>
<template>
<div class="app">
App
</div>
</template>
<style lang="less" scoped>
</style>