小编Far*_*zad的帖子

TypeScript:覆盖和修复包的类型定义

我正在使用React 胜利库制作图表,我正在使用 TypeScript。我已将@types/victory包添加到我的项目中,但不幸的是,它缺少一些我需要的关键定义。对于某些接口,它缺少几个属性,因此(使用此答案),我创建了一个自定义文件以将这些属性添加到接口。

但是,现在我有一个问题:为事件定义的接口有一个名为eventHandlersdefined的属性,但它又缺少一个重要的定义,它是如何定义的:

export interface EventPropTypeInterface<TTarget, TEventKey> {
  /* other properties */,
  eventHandlers: {
    [key: string]:
      { (event: React.SyntheticEvent<any>): EventCallbackInterface<TTarget, TEventKey> } |
      { (event: React.SyntheticEvent<any>): EventCallbackInterface<TTarget, TEventKey>[] }
  }
Run Code Online (Sandbox Code Playgroud)

但是,问题是该函数应该允许接受第二个参数,例如(我不确定第二个参数的类型,所以我有any):

{ (event: React.SyntheticEvent<any>, dataPoint: any): EventCallbackInterface<TTarget, TEventKey> }
Run Code Online (Sandbox Code Playgroud)

所以,我试图在我自己的定义中包含这个属性:

declare module "victory" {
  export interface EventPropTypeInterface<TTarget, TEventKey> {
  eventHandlers: {
    [key: string]:
      { (event: React.SyntheticEvent<any>, dataPoint: any): EventCallbackInterface<TTarget, TEventKey> } |
      { (event: React.SyntheticEvent<any>, dataPoint: any): …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs typescript-typings victory-charts

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

刷新Gradle项目时,IntelliJ IDEA需要很长时间

我有一个非常大的项目,在Gradle中配置了许多子项目.当我从命令行进行干净的构建时,大约需要10分钟,但在此之后,构建整个项目的速度非常快.

我的问题是将项目导入IntelliJ Community Edition.第一次导入时,大约需要10分钟,但在此之后,每当我对项目进行刷新时,它仍然需要相同的时间.我看到正在执行的后台任务:我看到消息显示得非常快,然后是库存Gradle: Build,我不知道它在做什么!

我试图提高日志级别,我看到一条DEBUG消息说:.project.GradleProjectResolver - Gradle data obtained in 311943 ms我认为这是需要花费大量时间的原因,但正如我所说,我不知道它在做什么需要这么多时间

顺便说一下,我正在使用gradle包装器(不确定它是否有所作为)

任何帮助表示赞赏,在此先感谢

intellij-idea gradle gradlew

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

Jest toBeCloseTo的精度不按预期工作

我正在尝试toBeCloseTo在Jest中测试一个浮点数:

expect(value).toBeCloseTo(0.01491, 5);
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的测试时,我看到了这个结果:

Precision: 5-digit
Expected: 0.01491
Received: 0.01491570355
Run Code Online (Sandbox Code Playgroud)

当我将精度设置为时4,测试通过,但我很困惑.在文档中,它说:

使用numDigits控制多少位小数点后检查

所以,我在这里假设我正在比较正确的位数:我有.01491,有5数字,所以我希望(双关语!)测试比较那些数字和传递.

我在这里错过了什么?

谢谢

javascript jestjs

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

fork-ts-checker-webpack-plugin给出有关@types和Mocha的错误

我在项目中使用ts-loaderfork-fs-checker-webpack-plugin,并且抱怨node_modules/@types,例如:

ERROR in D:/temp/temp-vscode/temp-electron/application-volume-    change/node_modules/@types/react/index.d.ts
ERROR in D:/temp/temp-vscode/temp-electron/application-volume-change/node_modules/@types/react/index.d.ts(2288,19):
TS2320: Interface 'Element' cannot simultaneously extend types 'ReactElement<any>' and 'ReactElement<any>'.
  Named property 'type' of types 'ReactElement<any>' and 'ReactElement<any>' are not identical.
Run Code Online (Sandbox Code Playgroud)

而且也对itdescribeexpect,等有错误,例如:

TS2304: Cannot find name 'describe'.
TS2304: Cannot find name 'expect'.
Run Code Online (Sandbox Code Playgroud)

我试图排除以下目录tsconfig.json

"exclude": [
  "node_modules",
  "node_modules/@types"
]
Run Code Online (Sandbox Code Playgroud)

和(部分)我的webpack.config

const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
...
rules: [
  {
    test: /\.tsx?$/,
    exclude: /node_modules/,
    use: [
      {
        loader: 'ts-loader', …
Run Code Online (Sandbox Code Playgroud)

typescript webpack ts-loader webpack-4

6
推荐指数
0
解决办法
463
查看次数

Gradle 中的 Maven jaxb2 插件

我需要将 Maven 项目迁移到 gradle。maven 项目使用的maven-jaxb2-plugin是这样的(插件的版本设置在 root 中pom.xml):

<plugin>
  <groupId>...</groupId>
  <artifactId>maven-jaxb2-plugin</artifactId>
  <executions>
    <execution>
      <goals>
        <goal>generate</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <generatePackage>package for generated classes</generatePackage>
    <schemaDirectory>directory containing XSD files</schemaDirectory>
    <includeSchemas>
        <includeSchema>XSD file name</includeSchema>
        <includeSchema>XSD file name</includeSchema>
        ...
    </includeSchemas>
    <strict>true</strict>
    <verbose>true</verbose>
    <extension>true</extension>
  </configuration>
<plugin>
Run Code Online (Sandbox Code Playgroud)

所以,我想在 gradle 中实现相同的功能,这就是我所拥有的:

plugins {
  id "com.github.jacobono.jaxb" version "1.3.5"
}
dependencies {
  jaxb "org.glassfish.jaxb:jaxb-runtime:2.2.11"
  jaxb "org.glassfish.jaxb:jaxb-xjc:2.2.11"
}
jaxb {
  xsdDir = "directory containing XSD files"
  xjc {
    taskClassname = "com.sun.tools.xjc.XJC2Task"
    generatedPackage = "package for generated classes" …
Run Code Online (Sandbox Code Playgroud)

gradle maven maven-jaxb2-plugin

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

在ASP.NET核心模型中使用Required和JsonRequired与JSON主体绑定

我正在使用ASP.NET Core 2.0,我有一个请求对象注释如下:

public class MyRequest
{
    [Required]
    public Guid Id { get; set; }

    [Required]
    public DateTime EndDateTimeUtc { get; set; }

    [Required]
    public DateTime StartDateTimeUtc { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

public async Task<IActionResult> HandleRequest([FromBody] MyRequest request)
{ /* ... */ }
Run Code Online (Sandbox Code Playgroud)

我注意到一个问题与模型绑定:当我发送包含该头的请求Content-Type设置为application/json和一个空的身体,我想到,request在我的控制器是nullModelState.IsValidfalse.

但是当我有这样的身体时:

{
  "hello": "a-string-value!"
}
Run Code Online (Sandbox Code Playgroud)

request不是null,它有一切的默认值,而且ModelState.IsValidtrue

这当然发生在我缺少所有Required属性的时候,并且唯一存在的名称与那里的属性不匹配(即使是这个单个参数的类型string,也与我的模型上的任何类型都不匹配).

所以在某种程度上,Required如果我的请求中没有任何内容,那些属性似乎正在起作用,但如果我的请求不为空,它们就不会做任何事情!

当我准备这个问题时,我注意到还有一个JsonRequired …

c# model-binding json.net asp.net-core-2.0

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

Windows和HyperV上的Minikube:停留在提示“ minikube login”上

我是Kubernetes的“新手”,我想在运行Hyper-V和Windows 10的本地计算机上进行尝试。我看到它minikube用于本地开发,并且能够在上找到Chocolatey它,所以我使用了它来安装它:

choco install minikube -y
Run Code Online (Sandbox Code Playgroud)

(我认为这也安装kubectl

我的问题是我无法启动它;我正在运行以下命令:

minikube start --vm-driver=hyperv
Run Code Online (Sandbox Code Playgroud)

我在HyperV中配置了一个外部开关(我在某处找到它作为建议),但是当我运行命令时,它卡在了Creating VM ...

我认为,如果我查看在HyperV中创建的VM,可能会给我一个线索,当我打开它时,会看到以下内容: 在此处输入图片说明

因此,它似乎在等待输入,这就是为什么卡住了!我尝试搜索问题,但无济于事。

我将不胜感激任何帮助

PS:在我看来,如果我等待足够长的时间,控制台上会显示以下消息:

Temporary Error: provisioning: error getting ssh client: Error dialing
    tcp via ssh client: ssh: handshake failed: ssh: unable to authenticate, 
    attempted methods [none publickey], no supported methods remain
Run Code Online (Sandbox Code Playgroud)

hyper-v chocolatey minikube

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

Terraform 根据条件在不同的提供商之间进行选择

我正在尝试使用 Terraform 来自动部署环境,但设置有些棘手:

我需要配置 DNS CNAME 记录,但我的问题是,根据环境,我需要在Dyn DNS或 Azure DNS 中配置该记录(并且它们是互斥的)

Dyn而且,出于同样的原因,例如,当我想在 Azure 中配置时初始化 Terraform 提供程序对我来说是没有意义的。

我认为可行的是包括两个providers

provider azurerm {
  version = "=1.44.0"

  client_id       = var.dns_provider_client_id
  client_secret   = var.dns_provider_client_secret
  subscription_id = var.dns_provider_subscription_id
  tenant_id       = var.dns_provider_tenant_id
}

provider dyn {
  version = "=1.2.0"

  customer_name = var.dyn_customer_name
  password      = var.dyn_password
  username      = var.dyn_username
}
Run Code Online (Sandbox Code Playgroud)

然后,在运行时,我会将与我不使用的提供程序相关的变量设置为空字符串,然后,在配置记录时,在此处tf plan的帮助下,我认为我可以有条件地配置资源:

resource azurerm_dns_cname_record dns_name {
  count = var.dyn_dns_zone.name == "" ? 1 : 0

  name                = "..."
  record              = …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-provider-azure

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

将 Serilog 与 Azure 日志流结合使用

我一直在研究如何使用 Serilog 写入 Azure 日志流。我也在这里找到了一些答案;例如,一个答案是建议登录到特定文件夹 ( home\LogFiles\http\...)中的文件,但它似乎对我不起作用。

我尝试使用跟踪调试接收器,但在 Azure 日志流中看不到我的消息。

让我更困惑的是,即使使用System.Diagnostics.DebugSystem.Diagnostics.Trace也不起作用。

所以,也许有两个问题:

  • 一般来说,我应该如何写入 Azure 日志流?
  • 是否可以在写入日志流的同时使用 Serilog 基础设施?

不用说,我在 Azure 应用服务中启用了“诊断日志”。

任何帮助真的很感激,

谢谢

c# azure serilog asp.net-core-2.0

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

强制Qt自定义信号要立即处理?

我对Qt及其信号/插槽机制有疑问。
我创建了一个自定义小部件,并在其中创建了一个自定义SIGNAL(ShowMessage)。该信号连接到SLOT,该信号在主窗口的状态栏中显示消息(以及指定的超时)。

现在,我的班级中有一个操作需要很长时间才能执行,并且它阻塞了UI。我希望emit在开始操作之前发出信号,完成操作后,emit它会再次更新状态栏。像这样的东西:

emit ShowMessage(message, timeout);
// Do the long operation
emit ShowMessage(newMessage, timeout);
Run Code Online (Sandbox Code Playgroud)

但是我的问题是Qt似乎要等到整个操作完成后才用来更新状态栏newMessage
有没有办法以某种方式“强制”立即处理我的信号,因为如果我想诉诸线程,那么我的生活将变得更加复杂!

c++ qt signals-slots

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