据我所知,在ES6和
let
、const
引入后,使用它们声明的变量必须在使用前先声明。然而,我遇到了许多例子,在这些例子中,当我在使用之后声明变量时,我的代码仍然可以正常运行。例如,以下是React Native TypeScript模板(简化版)的代码:import React from 'react';
import {StyleSheet, Text} from 'react-native';
const App = () => {
return (
<>
<Text style={styles.text}>Some text</Text>
</>
);
};
const styles = StyleSheet.create({
text: {
backgroundColor: 'blue',
},
});
export default App;
在这里,styles
在使用后被声明,甚至看起来这是惯用的方法,但即使ESLint将其标记为no-use-before-define
,它仍然可以工作。
我的问题是:为什么它仍然可以工作?
App
构造函数是最后被调用的之一... - CerbrusApp()
时,styles
已经被定义。 - deceze