小编Sof*_*mur的帖子

为 src 库文件分配命名空间

我有一个用 ReactJS 制作的网站。analyzejs该网站调用另一种编程语言生成的库的函数。我只能调用这个库的函数;我无法修改这个库的太多内容。

到目前为止,我一直在使用该库的第一个版本:analyzejs-v1.js. 为了实现这一点,在frontend/public/index.html网站中,我有

<head>
  <script src="/lib/analyzejs-v1.js"></script>
  <!-- <script src="/lib/analyzejs-v2.js"></script> -->
</head>
<body>
  <div id="root"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

我还有一个类型声明文件,frontend/src/defines/analyzejs-v1.d.ts如下所示:

declare function f1(): string;
declare function f2(): string;
...
Run Code Online (Sandbox Code Playgroud)

结果,在网站的代码中,我可以直接调用f1()使用analyzejs-v1.js

现在,我想添加该库的另一个版本analyzejs-v2.js。在网站的某些部分,我想f1()调用analyzejs-v1.js; 在网站的某些部分,我想f1()调用analyzejs-v2.js. 所以我想我需要向这些不同的版本添加诸如v1和之类的命名空间v2以避免冲突。然后,我就可以打电话v1.f1()v2.f2()

我尝试修改frontend/src/defines/analyzejs-v1.d.ts如下:

declare namespace v1 {
    function f1(): string;
    function f2(): string;
    ...
}
Run Code Online (Sandbox Code Playgroud)

在网站的代码中,我尝试使用v1.f1().

编译没有出现任何错误。但是,运行该网站并使用功能调用时,我在: …

javascript namespaces type-declaration typescript reactjs

5
推荐指数
1
解决办法
311
查看次数

为不同的组件加载不同的JS库文件

我有一个用 ReactJS 制作的网站。在 中public/index.html,我有

<head>
  <script src="/lib/analyzejs-v1.js"></script>
  <script src="/lib/analyzejs-v2.js"></script>
</head>
<body>
  <div id="root"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

其中analyzejs-v1.js有 6Mo,并且analyzejs-v2.js有 3Mo;它们都是固定文件,我无法对其进行太多修改。

这两个文件不是模块;它们的功能已声明(例如,declare function f1(address: string): string;在 中src/defines/analyzejs-v1.d.ts)。analyzejs-v1.js因此,某些组件通过使用函数名称直接调用函数f1(...),无需任何命名空间、导入或导出。其余组件analyzejs-v2.js通过使用函数名称f2(...)直接调用函数,无需任何命名空间、导入或导出。

加载这两个js库文件需要时间。所以我正在寻找一种方法来加载analyzejs-v1.jsanalyzejs-v2.js根据组件(或 URL)。

那么有谁知道为不同组件加载不同JS库文件的常规方法吗?

script-tag hamlet reactjs webpack react-scripts

5
推荐指数
1
解决办法
763
查看次数

打开多个 VSCode 窗口时在 2 个 VSCode 窗口之间切换的快捷方式

我使用的是 Mac。

我打开了几个 VSCode 窗口。

我只想在 2 个(上次查看的)窗口之间切换。有谁知道这样做的键盘快捷键是什么?

我尝试了 command + `,但它一一浏览了所有打开的 VSCode 窗口。选项+选项卡也是如此。

我尝试了 control + w,它也会浏览所有打开的 VSCode 窗口,除非您使用向上和向下键进行选择。

有人可以帮忙吗?

keyboard-shortcuts visual-studio-code

5
推荐指数
1
解决办法
2453
查看次数

如何在Emacs中实现错误回溯?

我正在Ocaml中编写一个编译器.当我make在终端中编译和测试它时,tracback运行良好,例如:

export OCAMLRUNPARAM=b
./Simpler-Basic test.sib
Fatal error: exception Match_failure("interp.ml", 45, 21)
Called from file "interp.ml", line 97, characters 72-86
Called from file "list.ml", line 74, characters 24-34
Called from file "interp.ml", line 108, characters 9-35
Called from file "main.ml", line 54, characters 4-17
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

但是当我在我的Emacs中编译并测试它Meta-x compilemake,它没有显示缓冲区中的回溯部分:

make
export OCAMLRUNPARAM=b
./Simpler-Basic test.sib
Fatal error: exception Match_failure("interp.ml", 45, 21)
make: *** [all] Error 2

Compilation exited abnormally with code 2 at Sat …
Run Code Online (Sandbox Code Playgroud)

debugging emacs ocaml traceback

4
推荐指数
1
解决办法
900
查看次数

有没有一起生成 .cmo .cmx .cmi .mli 的命令?

我有一个.ml文件,我想它的产生.cmo.cmx.cmi.mli通过为最命令越好,任何人都可以帮助吗?

ocaml compilation

4
推荐指数
1
解决办法
2684
查看次数

模块的继承及其类型

我已经定义了2个签名和2个模块,如下所示.一个签名来自另一个; 一个模块来自另一个模块.

module type MATRIX =
sig
  type 'a t
  ...
end

module type AMATRIX = 
sig
  include MATRIX
  ...
end

module MatrixArray : MATRIX =
struct
  type 'a t = 'a array array
  ...
end

module AMatrixArray : AMATRIX =
struct
  include MatrixArray
  let init (x: 'a) : 'a t =
    Array.make 2 (Array.make 2 x)
  ...
end
Run Code Online (Sandbox Code Playgroud)

但是当我编译它时,它最终会给我一个错误Error: This expression has type 'a array array but an expression was expected of type 'a t = 'a MatrixArray.t …

inheritance ocaml types module

4
推荐指数
1
解决办法
100
查看次数

将几行字符串写入文件

我有一段代码如下:

Open "output.txt" For Output As #1
s = "abc" & chr(10) & "def"
Msgbox s
print #1, s
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,Msgbox确实会打印2行。然而,在output.txtabcdef被打印。

有人知道如何将多行字符串输出到文件吗?

excel vba excel-vba

4
推荐指数
1
解决办法
5万
查看次数

输入模块Printf

Module Printf的文档中,我不了解其机制('a, out_channel, unit) format,以为我在实践中经常使用它.

例如,以下函数在编译时输入良好:

type t =
  { x: int;
    y: int }

let print (chan: out_channel) (co: t) : unit =
  Printf.fprintf chan "(%d, %d)" x y

let try (co0: t) (co1: t) =
  Printf.fprintf Pervasives.stdout "From %a To %a" print co0 print co1
Run Code Online (Sandbox Code Playgroud)

签名Printf.fprintf: out_channel -> ('a, out_channel, unit) format -> 'a,但我看不到('a, out_channel, unit) format匹配的内容"From %a To %a" print co0 print co1. …

ocaml types

4
推荐指数
1
解决办法
95
查看次数

浏览工作簿的所有用户表单

我想编写一个VBA程序,该程序在工作簿中打印所有用户窗体的名称。

例如,如果工作簿具有名为的用户表单frmHello。我只想打印UserForm: frmHello

在此处输入图片说明

有谁知道哪个集合与用户表单有关,以及如何找到用户表单的名称?

excel vba excel-vba

4
推荐指数
1
解决办法
1763
查看次数

JavaScript API不适用于Excel 2013?

我刚收到一份我提交的加载项的更改建议报告.它说Your add-in is not working in the Excel 2013 client on Windows 7 with Internet Explorer 11.

我一直在测试我的插件中Excel 2016Excel Online.所以我刚安装Excel 2013(版本15.0.4841.1000,包括SP1),确实加载项不起作用.但似乎很少有事情可行......

例如,以下示例函数haha在Cell A1下写入Excel Online,而在其中没有任何内容Excel 2013.

function test () {
    Excel.run(function (ctx) {
        var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
        range.values = [["haha"]];
        return ctx.sync();
    });
}
Run Code Online (Sandbox Code Playgroud)

那么有人知道JavaScript API是否支持Excel 2013?如果没有,许多专业人士将无法使用加载项,因为他们仍然Excel 2013...

PS:我看到办公室商店中有很多插件需要Excel 2013 or laterExcel 2013 Service Pack 1 …

ms-office office-js

4
推荐指数
1
解决办法
2221
查看次数