Tìm kiếm trang web

react native - ReactNative - "expo start" hoạt động với tệp tsx mà không tuân theo ngữ pháp TypeScript


Tôi vừa mới bắt đầu với React Native. Tôi đã tạo một dự án bằng cách sử dụng "expo init" với tùy chọn "blank (TypeScript)" được chọn.

Đã tạo một thành phần có tên GoalItem.tsx như dưới đây,

import React from 'react'
import { View, Text, StyleSheet } from 'react-native'

const GoalItem = props => (
  <View>
    <Text>{props.title}</Text>
  </View>
)

export default GoalItem

Nó chỉ là một mã javascript trong tệp tsx. Khi gõ tsc trong terminal, tôi nhận được các lỗi liên quan đến cú pháp TypeScript, điều này là điều mong đợi.

Khi tôi gõ expo start, nó hoạt động tốt mà không có bất kỳ cảnh báo hay lỗi nào.

Câu hỏi: Làm thế nào để chúng ta sử dụng expo start để kiểm tra ngữ pháp TypeScript trước?

Đây là tệp tsconfig.json của tôi

{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true
  }
}

Câu trả lời #1

Tôi cũng đã tự hỏi về vấn đề này. Giải pháp tạm thời duy nhất mà tôi tìm thấy là thay đổi script để biên dịch TypeScript thủ công trước rồi mới chạy Expo. Tôi không tin rằng nó hoạt động với mọi lần làm mới mã, nhưng ít nhất bạn cũng yên tâm rằng nếu bạn khởi động lại "start" thì bạn sẽ có biên dịch TypeScript.

Trong package.json đây là những gì tôi đã thay đổi

"scripts": {
    "start": "yarn tsc && expo start" <-- change is here
    [...]
}

Điều này cũng sẽ đọc một tsconfig.json hợp lệ nếu có.

Hãy nhớ rằng bạn cần thực thi script "start" để điều này hoạt động, ví dụ "yarn start" và không chỉ "expo start".