ค้นหาเว็บไซต์

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

บทความที่เกี่ยวข้อง