小编Ale*_*rra的帖子

如何从go.mod手动获取依赖项?

我正在使用1.11模块支持.我知道go工具现在会在构建/安装时自动安装依赖项.我也理解这个推理.

我正在使用docker构建我的二进制文件.在许多其他生态系统中,通常会复制依赖关系清单(package.json,requirements.txt等)并将依赖关系作为构建的单独阶段进行安装.这利用了docker的层缓存,并且使得重建速度更快,因为通常代码更改的数量远远超过依赖项更改.

我想知道vgo有没有办法做到这一点?

go go-modules

9
推荐指数
2
解决办法
5188
查看次数

是否可以进行类型安全的节点式回调?

节点回调看起来像:

interface NodeCallback<TResult,TError> {
  (err: TError): void;
  (err: null, res: TResult): void;
}
Run Code Online (Sandbox Code Playgroud)

所以回调要么得到err要么res不是两者都得到。我看到的大多数类型都有其非可选版本的类型errres硬编码。

function readdir(path: string, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;
Run Code Online (Sandbox Code Playgroud)

这不是严格的类型安全。例如,这编译得很好:

fs.readdir('/', (err, files) => {
  if (err !== null) { // There's an error!
    files.forEach(log); // Still using the result just fine.
  }
})
Run Code Online (Sandbox Code Playgroud)

您可以通过更改签名以包含所有可能的值来使这更(好吧,有点)安全。

function readdir(path: string, callback?: (err: null | NodeJS.ErrnoException, files?: string[]) => void): void;
Run Code Online (Sandbox Code Playgroud)

但是没有办法指定两者之间的依赖关系,所以你需要输入 assertres来安静下来strictNullChecks

fs.readdir('/', (err, …
Run Code Online (Sandbox Code Playgroud)

typescript

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

标签 统计

go ×1

go-modules ×1

typescript ×1