在typescript中安装模块
我将在typescript中安装并使用模块。我尝试了在typescript中安装模块,typescript,react-native,typescript2.0,Typescript,React Native,Typescript2.0,我将在typescript中安装并使用模块。我尝试了npm安装@types/victory native,但它说没有模块@types/victory native 我应该只在typescript中安装@types/..模块吗 如何在typescript中使用此模块?只需执行npm安装victory native--保存 此模块没有输入功能,但没有任何东西可以阻止您使用它。 您还需要手动安装依赖项,然后链接本机代码 反应本机链接反应本机svg 请参阅他们的指南: 更新 在这种情况下,您不熟悉如何
npm安装@types/victory native
,但它说没有模块@types/victory native
我应该只在typescript中安装@types/..
模块吗
如何在typescript中使用此模块?只需执行
npm安装victory native--保存
此模块没有输入功能,但没有任何东西可以阻止您使用它。
您还需要手动安装依赖项,然后链接本机代码
反应本机链接反应本机svg
请参阅他们的指南:
更新
在这种情况下,您不熟悉如何使用本机模块和类型脚本。
我有办法解决这个问题:
- 当你看到它需要链接时,很容易使用弹出的应用程序,而不是expo。假设项目是从
create react native app
创建的。确保项目已通过运行退出
- 运行
添加victory native react native svg以安装模块
- 在tsconfig.json中,设置
“allowJs”:true,“noImplicitAny”:false
- 在
react native链接react native svg
之后,打开Android Studio,在build.gradle(Module:app)文件中,尝试在底部查找依赖项{compile project(':react native svg')…}
。如果该行不存在,请添加该行
- 在android文件夹下,在命令行中运行
gradlew clean
- 然后构建js文件,并从命令行运行react native run android
。这个模块现在应该可以工作了
这是我的tsconfig.json:
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"moduleResolution": "node",
"jsx": "react-native",
"outDir": "build",
"rootDir": "src",
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"noImplicitAny": false,
"preserveConstEnums": true,
"allowJs": true,
"sourceMap": false,
"noImplicitReturns": true,
"noUnusedParameters": true,
"noUnusedLocals": true
},
"filesGlob": ["typings/index.d.ts", "src/**/*.ts", "src/**/*.tsx"],
"types": ["react", "react-native", "jest"],
"exclude": ["android", "ios", "build", "node_modules"],
"compileOnSave": false,
"include": ["src/**/*"]
}
直接从以下内容复制的简单示例:
import React,{Component}来自“React”;
从“victory native”导入{VictoryBar};
类应用程序扩展组件{
render(){
返回(
);
}
}
导出默认应用程序;
但导入时出错,找不到模块“victory native”的声明文件。“./node_modules/victory native/lib/index.js”隐式具有“any”类型。如果存在npm install@types/victory native,请尝试它,或者添加包含声明模块“victory native”的新声明(.d.ts)文件代码>是的,const Victory=require(“胜利本地”)
帮助我而不是导入
。太棒了。请提及导入-“require”,我会检查您的答案。import*作为Victory from“Victory native”
是TypeScript中的首选语法。
import React, { Component } from "react";
import { VictoryBar } from "victory-native";
class App extends Component {
render() {
return (
<VictoryBar />
);
}
}
export default App;