網站首頁 編程語言 正文
新建的RN項目有警告
我相信AwesomeProject是很多人的第一個RN項目,包括我在內。
npx react-native init AwesomeProject
但是當利用RN的腳手架搭建起來后,在vscode里打開項目,直接就會遇到如下這個vscode的警告:
'import type' declarations can only be used in TypeScript files. ts(8006)
這個vscode的警告不會影響程序的編譯和運行,但是任何一個有代碼潔癖的程序員,肯定是無法忍受的。我就被它折磨過一段時間,我先后采用了兩種方式解決它。
直接刪除vscode報警的部分
在我剛接觸RN時,為了集中精力關注主要矛盾,我當時直接刪除了那些vscode報警的地方。因為那個報警就是Flow的語法,而Flow只是靜態類型檢查的一種方式,是為了補齊javascript沒有類型這塊短板的,所以即使不使用它,而僅僅保留js的語法部分,也是不會影響運行的。
// import type {Node} from 'react'; ... const Section = ({children, title}) /*: Node*/ => { ... const App /*: () => Node*/ = () => { ...
這樣刪除或者注釋掉這些語法之后,vscdoe的報警就解除了。
禁掉vscode內置的TypeScript插件
過了一段時間,我漸漸熟悉了React Native的一些東西,主要矛盾解決的差不多了,是時候回過頭來看看怎么處理它了。Flow的類型定義和Typescript還是蠻相似的,很多地方的語法都一模一樣,也難怪vscode把它識別成了TypeScript。
因為我默認生成RN項目時,并不打算使用TypeScript,而是打算全套用FB的東西:RN配Flow。所以,第一步,就是針對我的workspace,關閉vscode的Typescript檢查。
廢話不多說,直接上圖:
在vscode中disable掉內置的兩個TypeScript插件,注意要選擇僅僅是當前worksapce下disable就好。
引入Flow Language Support解除報警
既然禁止了TypeSCript,那么就需要引入Flow的插件了,還是上圖:
該插件名字叫Flow Language Support
,也是人氣超高的插件啊。
引入插件后,你會發現,似乎這個插件并沒有工作。因為一個插件的工作,其實有時候是需要node_modules里有讓這個插件使用的命令行工具才行。插件本身,只是為了契合vscdoe的一個殼,殼子里的內容,是需要有對應的包的支持的。
yarn add flow-bin flow-parser -D
安裝這兩個包為插件賦予真正的靈魂。關閉vscode,然后重新打開。之所以這么做的目的是因為有些插件需要重新啟動vscode才行,我的習慣就是每次安裝完插件,甭管是否有重啟的提示,都會主動重啟。
很遺憾,這次又有了新的報錯:
根據提示,好像是因為插件依賴的flow版本是0.183.0,而.flowconfig中的版本是^0.182.0。這個錯誤提醒了我們,要保證當前項目中,各個地方使用的flow版本,都一致才行。知道插件用的是0.183.0,那么也要保證其余地方也是這個版本。
yarn add flow-bin@0.183.0 flow-parser@0.183.0 -D
于是我們重新安裝flow-bin和flow-parser,保證他倆的版本和插件依賴的版本一致。然后再把.flowconfig里的version改了。
重啟一下vscode,再次打開后,Flow插件就工作正常了。
我在安裝Flow插件的時候的版本提示是0.183.0,但是這個版本隨著時間的推移,必然會變化,記得隨機應變哦。
原文鏈接:https://juejin.cn/post/7152150977368293413
相關推薦
- 2022-12-15 Android?NotificationListenerService?通知服務原理解析_Andro
- 2022-07-25 基于?Redis?實現接口限流的方式_Redis
- 2022-12-26 python畫圖時linestyle,color和loc參數的設置方式_python
- 2023-01-12 pandas中的DataFrame數據遍歷解讀_python
- 2022-07-26 proteus仿真arduino中調用DHT11/22溫濕度傳感器
- 2022-08-01 Android開發之Flutter與webview通信橋梁實現_Android
- 2023-01-09 React應用框架Dva數據流向原理總結分析_React
- 2022-04-20 C#9.0推出的4個新特性介紹_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支