2017-04-20 77 views
3

一起使用TypeScript和React的正確方法是什麼,既然他們已經在15.5版的單獨項目中提取了PropTypes?如何在TypeScript中使用React 15.5?

從15.4升級到15.5之後,一切都運行正常,除了現在我在控制檯中得到這個警告:"Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead."如何讓它消失?

我已經嘗試執行以下步驟,但它不會刪除控制檯警告。

  • 添加prop-types@types/prop-types包。
  • 導入PropTypes無處不在,我導入React,import * as PropTypes from "proptypes"。還試用了require("prop-types")
  • 關閉noUnusedLocals,以避免編譯器抱怨PropTypes未被使用。

。由於我使用的是TypeScript,編譯器在編譯時正在驗證PropTypes,所以我不需要在運行時也這樣做,因此我不應該得到警告,對吧?我希望我可以在構建配置的某個地方添加或更改一個設置,這會使React編譯時不使用PropTypes。

+0

你能添加一個最小化的設置/例子來顯示警告嗎? –

+0

@SebastianSebald:我現在所擁有的全部存儲庫是:https://github.com/janaagaard75/film-filter/tree/master/website。 : -/ –

+0

我沒有Firebase帳戶,所以我無法運行你的應用。但是由於在你的代碼中絕對沒有'PropTypes'的使用,我猜你的一個依賴(也許是'mobx'?)仍然使用它們,這就是爲什麼你會得到這個警告。 –

回答

3

我有同樣的問題,因爲我是作爲進口陣營:我的項目中警告消失

import React from 'react' 

無處不在:

import * as React from 'react' 

後,我把它改成。

不需要prop-types包。

P.S.我使用babel並在tsconfig.json中有"allowSyntheticDefaultImports": true

+0

嗯,你怎麼能''在'TypeScript'中從'react''導入React?這是唯一有效的使用巴貝爾transpiler .. – apieceofbart

+1

@apieceofbart是的,我更新了答案。 – mixel

+0

非常感謝,不知道! – apieceofbart

相關問題