小编Ian*_*Ian的帖子

详细信息:ReadonlySet?

属性ReadonlySet集是否ReadOnlyC# 中的 ReadOnlyCollection相同?我无法从任何地方找到它的任何文件。您能否让我知道它的用途ReadonlySet以及我们如何实施它?

let readonly: Readonly<number> = 1;
let readonlySet: ReadonlySet<number> = ???// 
Run Code Online (Sandbox Code Playgroud)

javascript readonly typescript ecmascript-6 angular

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

将带有可选/默认属性的对象作为参数的函数?

我知道,使用ES6语法,可以创建一个将对象作为参数的函数,并且该参数可以具有默认值,如下所示:

function exampleFunction(objParam = {val1: 1, val2: 2}) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

如果我呼叫exampleFunction()objParam则提供默认值。但是,如果我打电话给exampleFunction({val1: 3})objParam.val2undefined。这很有意义,因为未应用默认设置。objParam.val2使用ES6表示法,有什么方法可以确保它具有价值吗?我知道我可以在函数中添加检查,但这会导致代码不一致,而我宁愿不这样做。

编辑:为了澄清,这是一个更好的示例:

function exampleFunction(param = 0, objParam = {val1: 1, val2: 2}) {
    return objParam.val1;
}
exampleFunction(); // Returns 1 (this is good)
exampleFunction(1, {val1: 2}); // Returns 2 (this is good)
exampleFunction(1, {val2: 3}); // Returns undefined (I want it to return 1)
Run Code Online (Sandbox Code Playgroud)

这是我目前拥有的东西,它确实有效,但有点不雅致:

function exampleFunction(param = 0, objParam = {val1: 1, val2: 2}) { …
Run Code Online (Sandbox Code Playgroud)

javascript syntax default-value ecmascript-6

5
推荐指数
2
解决办法
625
查看次数

在Numpy中转置一维数组而不转换为矩阵

我的目标是将行向量变成列向量,反之亦然。文档numpy.ndarray.transpose说明:

对于一维阵列,这无效。(要在列向量和行向量之间切换,请首先将一维数组转换为矩阵对象。)

但是,当我尝试这样做时:

my_array = np.array([1,2,3])
my_array_T = np.transpose(np.matrix(myArray))
Run Code Online (Sandbox Code Playgroud)

尽管确实采用矩阵形式(matrix([[66],[640],[44]])),但确实得到了所需的结果,但是我也收到此警告:

PendingDeprecationWarning:不建议使用矩阵子类表示矩阵或处理线性代数(请参阅https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html)。请调整您的代码以使用常规ndarray。

my_array_T = np.transpose(np.matrix(my_array))
Run Code Online (Sandbox Code Playgroud)

我该如何正确地转置一个ndarray

python arrays transpose numpy matrix

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

哪些“命令动词”可用于 os.startfile 'operation' 参数,它们有什么作用?

根据Python 文档os.startfile需要两个参数:pathoperation。Path 描述得相当好且不言自明,但是对于operation,所要说的是:

当给出另一个操作[(not 'open')] 时,它必须是一个“命令动词”,指定应该对文件做什么。Microsoft 记录的常用动词是'print'and 'edit'(用于文件)以及'explore''find'(用于目录)。

这意味着存在其他命令动词。还有其他可用的命令动词吗?如果是这样,它们是什么以及它们做什么?

具体来说,我想知道与“打开文件位置”操作相关的命令动词。

python windows python-3.x python-os

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

将pyi(类型存根文件)导入普通python模块

我有一个程序(如宏),它在父程序中运行并从该程序导入一个 API 模块(让我们称之为foo)。问题是该模块仅存在于该程序中,因此我无法执行诸如在软件外部运行pydocmd之类的操作,因为该脚本会引发 ReferenceError。为了帮助我自己的开发,我foo.pyi在我的项目目录中创建了一个类型存根文件。如果导入失败,我想要做的是将该类型存根作为普通 Python 文件导入,以提供虚拟函数和属性。就像是:

try:
  import foo
except ImportError:
  from . import foo.pyi
Run Code Online (Sandbox Code Playgroud)

但是,这会引发错误,因为它试图pyifoo项目文件夹中不存在的库中导入。我能想到的唯一另一种选择是拥有 .pyi 文件的相同副本,比如“dummy_foo.py”,但我必须在一个 repo 中维护同一文件的两个副本。我宁愿不这样做。

python import stub python-import pyi

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

从 Electron 预加载脚本中检索更详细的错误

我正在尝试使用简单的预加载脚本运行一个新的 Electron 应用程序,尽管 TypeScript 编译没有问题,但我在开发人员工具中看到语法错误。不幸的是,由于 Electron 仅记录错误console.error(显示错误文本以及开发人员工具中记录错误的行),因此我无法找到查看语法问题的实际位置。我只能看到这样的: 在此输入图像描述

有什么方法可以查看整个堆栈跟踪吗?

javascript error-handling electron

5
推荐指数
0
解决办法
304
查看次数

如何编写异步类型断言函数?

从 TypeScript 3.7 开始,我们可以编写一个类型断言函数,如下所示:

function assertsIsArray(x: any): asserts x extends Array<any> {
  if(!Array.isArray(x)) throw new Error();
}
Run Code Online (Sandbox Code Playgroud)

但是,该asserts子句取代了函数声明中的返回类型语句。通常不需要从这些函数返回,但这使得声明async函数显然是不可能的:

async function assertsIsArray(x: any): asserts x extends Array<any> {
  if(!Array.isArray(x)) throw new Error();
}

// Type 'void' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.
Run Code Online (Sandbox Code Playgroud)

通常,验证需要异步(即使用yup)。如何制作异步类型断言方法?

syntax types asynchronous type-assertion typescript

5
推荐指数
0
解决办法
519
查看次数

在 Azure Pipelines 中继续出错(但仍报告为错误)

我有一个由 YAML 文件定义的 Azure Pipelines 管道,该文件编译、运行一些测试,然后发布测试结果。不编译就运行测试显然是不可能的,所以编译任务显然是有continueOnError: false设定的。但是,我还是想在测试失败时发布测试结果,所以我设置continueOnErrortrue下测试任务。

这似乎有效,直到我的一项测试失败。然后,Azure 并没有使构建失败,而是报告了一个警告。我怎样才能让它仍然错误整个构建但同时执行剩余的任务?

continuous-integration unit-testing azure azure-pipelines

4
推荐指数
2
解决办法
2527
查看次数

使用Firefox Addon内容脚本访问cookie?

我正在尝试从其他人创建的Chrome中翻译插件.它有一个内容脚本chrome.cookies.get.我找不到合适的方法来解决这个问题.有什么方法可以从插件sdk中的内容脚本访问cookie吗?

这是原始代码:

function getCookies(domain, name, callback) {
    chrome.cookies.get({"url": domain, "name": name},
        function(cookie) {
            if (callback) {
                if (cookie) {
                        callback(cookie.value);
                } else {
                    callback(null);
                }
            }
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

cookies sdk firefox-addon google-chrome-extension firefox-addon-sdk

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

为什么 Scala 的 Set.subsets() 方法被定义为空括号方法?

Scala 的不可变Set类有一个名为 的方法subsets(),它返回集合的所有子集。

通常空括号方法是为引起副作用的方法保留的,但这个似乎没有。

为什么这个方法不定义为无参数方法?它实际上会引起一些副作用吗?

scala side-effects set parentheses

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