reactjs - ฉันจะใช้ React 15.5 กับ TypeScript ได้อย่างไร?
วิธีที่ถูกต้องในการใช้ TypeScript และ React ร่วมกันคืออะไร ตอนนี้ที่พวกเขาได้แยก PropTypes ออกไปในโปรเจกต์แยกต่างหากในเวอร์ชัน 15.5?
ทุกอย่างทำงานได้ดีหลังจากอัปเกรดจาก 15.4 เป็น 15.5 ยกเว้นว่าตอนนี้ฉันได้รับคำเตือนนี้ในคอนโซล: "Warning: การเข้าถึง PropTypes ผ่านแพ็กเกจ React หลักถูกยกเลิกการใช้งานแล้ว ให้ใช้แพ็กเกจ prop-types จาก npm แทน." ฉันจะทำให้มันหายไปได้อย่างไร?
ฉันได้ลองทำตามขั้นตอนต่อไปนี้แล้ว แต่ก็ไม่สามารถลบคำเตือนในคอนโซลได้
- เพิ่มแพ็กเกจ
prop-typesและ@types/prop-types - นำเข้า PropTypes ทุกที่ที่ฉันนำเข้า React,
import * as PropTypes from "proptypes". ลองใช้กับrequire("prop-types")แล้วด้วย. - ปิด
noUnusedLocalsเพื่อหลีกเลี่ยงไม่ให้คอมไพเลอร์รายงานว่ามีการใช้ PropTypes ไม่ถูกต้อง
แต่ เนื่องจากฉันกำลังใช้ TypeScript คอมไพเลอร์จะตรวจสอบ PropTypes ในเวลาคอมไพล์ ดังนั้นฉันไม่จำเป็นต้องตรวจสอบเหมือนกันในเวลารัน และดังนั้นฉันไม่ควรได้รับคำเตือนเลยใช่ไหม? ฉันหวังว่าบางทีฉันอาจจะสามารถเพิ่มหรือเปลี่ยนการตั้งค่าในที่ใดที่หนึ่งในการกำหนดค่าการสร้าง ซึ่งจะทำให้ React คอมไพล์ได้โดยไม่ใช้ PropTypes.
คำตอบ #1
ฉันมีปัญหาเดียวกันเพราะฉันกำลังนำเข้า React เป็น:
import * as React from 'react'
หลังจากฉันเปลี่ยนมันเป็น:
import React from 'react'
ทุกที่ในโปรเจกต์ของฉัน การเตือนก็หายไป
ไม่มีความจำเป็นต้องใช้แพ็กเกจ prop-types
ป.ล. ฉันใช้ Babel และมี "allowSyntheticDefaultImports": true ใน tsconfig.json
คำตอบ #2
หาคำตอบเจอแล้ว: เป็น mobx-react-devtools ที่ทำให้เกิดคำเตือน ปัญหานี้ถูกรายงานและแก้ไขแล้ว แต่ดูเหมือนว่าจะยังไม่ได้ปล่อยออกมา
https://github.com/mobxjs/mobx-react-devtools/issues/59
