在 TypeScript 中导入 Victor.js?

2023-12-22

我正在尝试使用胜利者.js http://victorjs.org/我在 TypeScript 项目 (3.0.1) 中使用了一个库,尝试导入和使用它时我真的很心痛。我已经从 npm 安装了它及其类型(victor @types/victor)。我尝试了多种方式导入它,但似乎无法将其与我的 IDE 中的类型解析一起导入。

我已经尝试过这些:

import { Victor} from 'victor';  
import * as v from 'victor'; 

(此模块只能通过打开“allowSyntheticDefaultImports”标志并引用其默认导出来通过 ECMAScript 导入/导出来引用)

import Victor = require('victor');  

(可以工作,但在针对 ecmascript 模块时不兼容)

const Victor = require("victor");  

(有效导入,我可以构造对象,但没有任何类型存在)

我确信之前有人遇到过类似的情况。如果它有帮助,victor 的 index.js 顶部有一行:

exports = module.exports = Victor;

In Brief

你正在尝试使用victor就好像它是一个 es6 模块,但事实并非如此。我看到两个选择:

  1. Let tsc将您的模块转换为如下格式commonjs, 在这种情况下tsc将在之间提供必要的粘合逻辑victor和你的代码

  2. 或者您需要通过提供粘合剂的模块加载器来加载您的应用程序。

详细说明

当我运行最新的tsc通过您显示的导入,我得到的错误是:

该模块只能通过打开“esModuleInterop”标志并引用其默认导出来使用 ECMAScript 导入/导出来引用。

当我开机时esModuleInterop,然后就可以正常工作了。这是我使用的测试代码:

import Victor from "victor";

const foo = new Victor(1, 2);
console.log(foo.y);

And the tsconfig.json:

{
  "compilerOptions": {
    "esModuleInterop": true
  }
}

这个问题的根源是当你这样做时import Victor from "victor"您正在询问将通过以下方式导出的值export default...语句,这是es6模块提供的语法。然而,victor导出任何对应的内容export default...。因此必须采取一些措施来弥补这一差距。根据我上面展示的内容,当你编译时,tsc发出这个:

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
var victor_1 = __importDefault(require("victor"));
var foo = new victor_1["default"](1, 2);
console.log(foo.y);

请注意__importDefault辅助功能。每当 TS 代码想要访问模块导出的内容时,就会使用它export default...它的作用是检查模块是否声称是 es6 模块。想要导出默认值的 es6 模块已经正确构造,因此如果该模块是 es6 模块,则无需执行任何操作。如果模块不是 es6 模块,则帮助程序会创建一种假模块,其默认导出值是原始模块的值。

由于您提到“针对 ecmascript 模块”,因此有一个重要的警告。如果你使用的话,这个tsconfig.json:

{
  "compilerOptions": {
    "esModuleInterop": true,
    "module": "es6"
  }
}

那么发出的代码是:

import Victor from "victor";
var foo = new Victor(1, 2);
console.log(foo.y);

请注意,不再有任何辅助函数。模块加载器将为您的应用程序加载模块,以提供与__importDefault。如果我将文件重命名为mjs扩展并运行:

$ node --experimental-modules test.mjs

我得到这个输出:

(node:18394) ExperimentalWarning: The ESM module loader is experimental.
2

当使用带有实验模块支持的 Node 时,它​​提供与__importDefault.


当你刚刚使用allowSyntheticDefaultImports不使用esModuleInterop你告诉编译器assume你的工具链中会有一些东西可以完成以下工作__importDefault。所以编译器不提供帮助器。它允许编译继续进行,但是you稍后负责使用模块加载器来执行与__importDefault.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 TypeScript 中导入 Victor.js? 的相关文章

  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • 在 Internet Explorer 中使用什么来监视 jscript 内存使用情况

    我们正在调试 GWT 应用程序 在 Firefox 中运行正常 在 IE6 0 中开始运行正常 但一段时间后 它就会崩溃并开始爬行 经过一些测试后 我们怀疑存在一些内存问题 使用了太多内存 内存泄漏等 除了使用taskmanager和pro
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 从回调中访问状态

    我在从回调访问组件状态时遇到问题 国家的价值num更改正确 但此类更改对于加载时定义的回调函数不可见 import React useState from react class MyObject callback gt void cons
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • JavaScript RegEx:不同的结果:使用字符串和使用正则表达式“文字”构建模式?

    使用 RegExp 文字与字符串之间有什么区别吗 http jsfiddle net yMMrk http jsfiddle net yMMrk String prototype lastIndexOf function pattern p
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容

随机推荐

  • konvajs 序列化包含图像的阶段

    我正在使用 Konvajs 创建一个自定义标签制作器 一切都运行良好 直到我尝试将阶段序列化为 JSON 用户通过三个步骤创建自定义标签 第一步 他们从我们的库中选择一个具有遮罩区域的模板图像 第二步允许他们上传个性化图像 该图像放置在第一
  • PHP - 如何将命名变量放入字符串中并在变量之前定义字符串

    我正在寻找 php 相当于pythons 操作员 https stackoverflow com a 2962966 1695680 PYTHON Example foo variable string baz characters new
  • node.js - 流文件而不临时保存它

    这是我的设置 我有一个客户端 文件从该客户端上传到node js服务器 serverA 我想从那里将 文件流式传输到另一台服务器 serverB without临时保存文件 在服务器 A 上 实现这一目标的最简单和最好的方法是什么 我可以将
  • 我可以在 PureComponent 中使用 shouldComponentUpdate

    我知道的功能shouldComponentUpdate也PureComponent 但我想知道是否可以将两者一起使用 假设我有很多道具 我想让它们在其中进行浅比较处理PureComponent 除了 1 个道具 需要巧妙地进行比较 那么是否
  • Java - thread.sleep 的替代品

    我需要将 while 循环暂停特定的毫秒数 我尝试过使用 Thread sleep duration 但它不准确 特别是在循环场景中 毫秒精度在我的程序中很重要 这是我不想返回检查条件直到expectedElapsedTime已经过去了 w
  • 无法使用 a2wsgi 让 FastAPI 与 CPanel 配合使用

    似乎很多人都遇到了同样的问题 但到目前为止 它被证明是无法解决的 我希望有人能解决这个问题 我尝试在 cPanel 上运行 FastAPI 并不断收到错误 UID 1293 19858 Child process with pid 2008
  • iOS13 通过滑动(屏幕边缘)弹出视图控制器不起作用

    有正常的UINavigationController与一些堆叠UIViewController按下后 我无法使用 屏幕边缘 滑动手势返回根视图控制器 没有自定义导航栏 没有自定义后退按钮 与使用 后退 滑动手势相关的内容是否发生了变化 我知
  • 为什么这里的外部

    我这里有一个jsfiddle https jsfiddle net Lh7qbye2 7 https jsfiddle net Lh7qbye2 7 这里还有一个测试网页 https shetline com test test01 htm
  • Rx 中立即去抖

    我正在寻找一位运营商debounce一系列的事件 比如说用户的点击 输入和输出应该是这样的 interval gt lt gt lt in 1 2 3 4 5 5 6 7 8 out 1 4 这个想法就像下划线的反跳immediate op
  • 为什么可执行文件无法接收 Makefile 中导出的变量?

    我有一个 makefile 其中导出将由可执行文件接收的变量 但令人惊讶的是可执行文件没有接收导出的值 请帮我 31 test 32 echo 33 echo Testing Electric Fence 34 echo After the
  • 套接字在进程后打开,打开完成

    在服务器端关闭客户端套接字并退出应用程序后 套接字仍会打开一段时间 我可以通过netstat看到它 Every 0 1s netstat tuplna grep 6676 tcp 0 0 127 0 0 1 6676 127 0 0 1 3
  • IIS HTTP 错误 403.1 - 禁止:执行访问被拒绝

    我有一个在 IIS 6 Windows Server 2003 上运行的 ASP NET 1 1 应用程序 这是我们的应用程序 但我们正在尝试专门复制客户的安装 以便将应用程序文件夹从他们的生产服务器完全复制到我们的测试计算机上 然后我们手
  • 查找在线/离线会员总数 Discord.js

    您好 我正在执行服务器状态命令 但我不知道如何查找总成员数在线 离线所以如果有人能帮助我那就太好了 client on message message gt if message author bot return false if mes
  • Django:在现有的 html 页面上返回 StreamingHttpResponse

    由于每个问题最好有一个问题 因此如果与问题的其他部分相似 请耐心等待另一个我的问题 https stackoverflow com questions 29921085 django passing value from form to v
  • 如何在 Silverlight/WPF 中反转裁剪几何体?

    The UIElement Clip http msdn microsoft com en us library system windows uielement clip aspx属性需要一个Geometry http msdn micr
  • 拦截 GWT RequestFactory 请求

    有没有办法在客户端拦截RequestFactory请求 我想拦截这样的调用 dummyRequest dummyOperation fire new Receiver
  • QT 安装程序框架:在简介页面之前添加新的向导页面

    我想在 QT 安装程序向导的介绍页面之前添加新页面 该页面将有图像和按钮 单击按钮后 我将导航到介绍页面 我可以这样做吗 我尝试过 但没有显示 但是 如果我将其添加到其他页面之前 例如 Target Dir 它确实会显示我的页面 有人可以在
  • 大型项目的 Visual Studio 2010 C++ 链接器性能

    在我的公司 我们仍在使用 Visual Studio 2005 但正在研究 Visual Studio 2010 希望它能加快我们开发周期的某些部分 目前 我们最感兴趣的是 Visual Studio 2010 的 C 链接器的性能 在构建
  • 拥有正确的日期时间和正确的时区

    我在用feedparser为了获取RSS数据 这是我的代码 gt gt gt import datetime gt gt gt import time gt gt gt import feedparser gt gt gt d feedpa
  • 在 TypeScript 中导入 Victor.js?

    我正在尝试使用胜利者 js http victorjs org 我在 TypeScript 项目 3 0 1 中使用了一个库 尝试导入和使用它时我真的很心痛 我已经从 npm 安装了它及其类型 victor types victor 我尝试