在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 请参阅他们的指南: 更新 在这种情况下,您不熟悉如何

我将在typescript中安装并使用模块。我尝试了
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;