我想将我现有的react本地应用程序转换为typescript。
文档中说,要卸载现有的依赖项,并将它们替换为如下所示:
yarn add --dev @types/jest @types/react @types/react-native @types/react-test-renderer
我需要对每一个依赖者这样做吗?如果某些依赖项没有@types/怎么办?
这是我的package.json:
{
"name": "reactnative",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"axios": "^0.18.0",
"expo": "^28.0.0",
"faker": "^4.1.0",
"formik": "^0.11.11",
"immutability-helper": "^2.7.1",
"lodash": "^4.17.10",
"native-base": "^2.7.1",
"react": "16.3.1",
"react-native": "0.55.4",
"react-native-actionsheet": "^2.4.2",
"react-native-autogrow-textinput": "^5.1.1",
"react-native-firebase": "^4.2.0",
"react-native-keyboard-input": "^5.2.3",
"react-native-keychain": "^3.0.0-rc.3",
"react-native-material-color": "^1.0.15",
"react-native-parsed-text": "0.0.20",
"react-native-section-list-get-item-layout": "^2.2.3",
"react-native-ui-kitten": "^3.0.1",
"react-native-vector-icons": "^4.6.0",
"react-navigation": "^2.5.5",
"react-redux-firebase": "^2.1.6",
"recompose": "^0.27.1",
"redux-logger": "^3.0.6",
"redux-promise-middleware": "^5.1.1",
"redux-thunk": "^2.3.0",
"yup": "^0.25.1"
},发布于 2018-08-11 12:30:38
文档中说要卸载现有的依赖项并替换它们。
实际上,您必须同时安装包(如react )和相关类型(如@types/react )。如果已经安装了react,则不必卸载和重新安装。
我需要对每一个依赖者这样做吗?
只要你想要它的类型。
如果某些依赖项没有@type/怎么办?
然后,要么自己键入它,要么将其键入为any,这样就没有类型记录的安全性了。
发布于 2018-08-11 12:31:51
不,以@types/开头的包是TypeScript定义。如果这些包还没有附带TS定义(许多大型/流行的库都有),那么除了实际的包之外,还应该安装它们。编辑器和TypeScript编译器将使用这些定义来执行类型检查。
发布于 2018-08-11 12:35:17
所有流行的库都存在@types类型。有些库包括类型(.d.ts文件),不需要输入,示例是axios。
对于没有类型的库,开发人员可以提供自己的类型声明或使用非类型化导入,例如使用require。示例是公开发行 for react-native-actionsheet。
文档中说要卸载现有的依赖项。
文档不应该说那样的话。不应该卸载现有的依赖项。只应添加相应的@type依赖项。
https://stackoverflow.com/questions/51799652
复制相似问题