typescript - ตัวแปร "ทั่วโลก" ของ React Native ใน Intellij ไม่ได้กำหนดค่า
นี่คือ app.tsx
{global.HermesInternal == null ? null : (
<View style={styles.engine}>
<Text style={styles.footer}>Engine: Hermes</Text>
</View>
)}
นี่คือ package.json
"devDependencies": {
"@babel/core": "^7.5.0",
"@babel/runtime": "^7.5.0",
"@react-native-community/eslint-config": "^0.0.3",
"@types/jest": "^24.0.15",
"@types/react": "^16.9.2",
"@types/react-native": "^0.60.15",
"@types/react-test-renderer": "^16.8.2",
"babel-jest": "^24.1.0",
"jest": "^24.1.0",
"metro-react-native-babel-preset": "^0.54.1",
"react-native-typescript-transformer": "^1.2.13",
"react-test-renderer": "16.8.6",
"typescript": "^3.6.3"
},
ฉันได้รับข้อความข้อผิดพลาดประเภทจาก Intellij เท่านั้น "ตัวแปรประเภท global ไม่สามารถแก้ไขได้" แต่ แอปทำงานได้สำเร็จ ฉันพยายามเพิ่ม @types/node แล้วก็เกิดข้อผิดพลาดประเภทเกี่ยวกับ HermesInternal ที่ไม่ได้เป็นส่วนหนึ่งของวัตถุ global.
แค่เพื่อเป็นการอ้างอิงใน @types/react-native/index.d.ts นี่คือการประกาศ:
declare global {
...
const HermesInternal: null | {};
}
คำตอบ #1
ฉันสงสัยว่านี่เป็นปัญหากับการพิมพ์ของ React Native ตามที่คุณเห็น การพิมพ์ส่งออกวัตถุ HermesInternal แบบ global แต่พวกมันไม่ได้ประกาศวัตถุแม่ global เอง
เป็นวิธีแก้ปัญหา คุณสามารถเพิ่มการประกาศนี้ไว้เหนือคอมโพเนนต์ของคุณ:
declare global {
const global: { HermesInternal: null | {} }
}
ไม่ใช่สิ่งที่ดีที่สุด แต่หวังว่าเราจะได้เห็นไฟล์ typings ที่อัปเดตเพื่อแก้ไขปัญหานี้ ขณะนี้ฉันกำลังใช้ @types/[email
