当我尝试使用Web worker时,我遇到了一些正确编译我的打字稿的问题.
我有一个像这样定义的工人:
onmessage = (event:MessageEvent) => {
var files:FileList = event.data;
for (var i = 0; i < files.length; i++) {
postMessage(files[i]);
}
};
Run Code Online (Sandbox Code Playgroud)
在我的应用程序的另一部分,我正在使用webpack worker loader来加载我的worker,如下所示: let Worker = require('worker!../../../workers/uploader/main');
然而,当我需要编译应用程序时,我会遇到一些问题,使得打字稿声明不会对我大喊大叫.根据我的研究,我必须在我的tsconfig文件中添加另一个标准库,以公开worker需要访问的全局变量.这些我指定如下:
{
"compilerOptions": {
"lib": [
"webworker",
"es6",
"dom"
]
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我运行webpack让它构建一切时,我得到了一堆这样的错误: C:/Users/hanse/Documents/Frontend/node_modules/typescript/lib/lib.webworker.d.ts:1195:13
Subsequent variable declarations must have the same type. Variable 'navigator' must be of type 'Navigator', but here has type 'WorkerNavigator'.
所以我的问题是:如何指定webworker使用lib.webworker.d.ts定义,其他一切遵循正常的定义?
在更新到 Angular 9.1 期间,__ngcc_entry_points__.json我在项目的所有根文件夹中都出现了一个名为的文件。这个文件应该被添加到源代码管理中,还是被忽略?
它似乎只包含一些哈希信息,所以我认为它可以被忽略?
我有以下课程
public class ModInfo : IEquatable<ModInfo>
{
public int ID { get; set; }
public string MD5 { get; set; }
public bool Equals(ModInfo other)
{
return other.MD5.Equals(MD5);
}
public override int GetHashCode()
{
return MD5.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用如下方法将一些数据加载到该类的列表中:
public void ReloadEverything() {
var beforeSort = new List<ModInfo>();
// Bunch of loading from local sqlite database.
// not included since it's reload boring to look at
var modinfo = beforeSort.OrderBy(m => m.ID).AsEnumerable().Distinct().ToList();
}
Run Code Online (Sandbox Code Playgroud)
问题是Distinct()呼叫似乎没有做到这一点.仍然存在彼此相等的对象.
根据这篇文章:https://msdn.microsoft.com/en-us/library/vstudio/bb348436%28v=vs.100%29.aspx这 是你应该如何做出不同的工作,但它不似乎是在ModInfo对象上调用Equals方法.是什么导致这种情况发生? …
我有一个项目尝试使用 rust 二进制文件构建 docker 映像,但是当我尝试使用 Cargo 下载二进制文件时它卡住了。运行图像-it,卷挂载 src,然后cargo build手动运行可以正常工作。
Dockerfile:
FROM rust:1.31.1 AS builder
# Install protoc
RUN apt-get update && apt-get install -y unzip \
&& PROTOC_ZIP=protoc-3.3.0-linux-x86_64.zip \
&& curl -OL https://github.com/google/protobuf/releases/download/v3.3.0/$PROTOC_ZIP \
&& unzip -o $PROTOC_ZIP -d /usr/local bin/protoc \
&& rm -f $PROTOC_ZIP
COPY . .
RUN cargo test
RUN cargo test --release -- --ignored
RUN cargo build --release
FROM debian
COPY --from=builder /target/release/brqueue /bin/brqueue
RUN chmod +x /bin/brqueue
CMD ["/bin/brqueue"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过 rust …
作为我们应用程序的一部分,我们希望在用户上传的文件在服务器上实际可用之前预览它们。为此,我尝试了几件事:
URL.createObjectURL(),给出WARNING: sanitizing unsafe style value blob:http://localhost:4200/16db9654-3119-4d55-9b59-715c2d31b334 (see http://g.co/ng/security#xss).
url()在 blob url 周围添加:WARNING: sanitizing unsafe style value url(blob:http://localhost:4200/86da46b1-5431-46d0-8757-13c75e09abc2) (see http://g.co/ng/security#xss).ERROR Error: Required a safe Style, got a URL
url()在模板中添加经过消毒的值WARNING: sanitizing unsafe style value url(SafeValue must use [property]=binding: blob:http://localhost:4200/72561f3d-0ff7-435b-8ac9-ec3a7c0cfbb0 (see http://g.co/ng/security#xss)) (see http://g.co/ng/security#xss).url()在清理之前在 blob url 周围添加ERROR Error: Required a safe Style, got a URL在这些过程中,背景图像实际上都没有出现。我使用 chrome 检查器检查了 dom,在任何情况下都没有实际设置属性。 …
我有以下课程:
public class DirectoryFinder : IDirectoryFinder
{
public string GetDirectory(string whereTo)
{
FolderBrowserDialog dialog = new FolderBrowserDialog {Description = whereTo};
DialogResult result = dialog.ShowDialog();
return result == DialogResult.OK ? dialog.SelectedPath : string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何验证它返回正确的数据?例如。string.Empty还是在对话框中选择的内容取决于用户单击的内容?
我正在使用NUnit作为测试框架。
angular ×2
c# ×2
angular-ivy ×1
dialog ×1
docker ×1
dockerfile ×1
linq ×1
nunit ×1
rust ×1
rust-cargo ×1
typescript ×1
unit-testing ×1
web-worker ×1
webpack ×1