小编Iva*_*lev的帖子

如何从Swagger架构生成基本的TypeScript接口?

我正在寻找一种从Swagger架构生成简单TypeScript接口的方法.我发现的大多数解决方案都是不必要的复杂.

我想生成这样的接口:

export interface IBar {
    a?: string;
    b: number;
    c: Date;
    baz?: IBaz;
}

export interface IBaz {
    d: number;
    color: Color;
}

export enum Color {
    RED = 0,
    GREEN = 1,
    BLUE = 2,
}
Run Code Online (Sandbox Code Playgroud)

从这样的架构:

    {
  "x-generator": "NSwag v11.14.0.0 (NJsonSchema v9.10.24.0 (Newtonsoft.Json v9.0.0.0))",
  "swagger": "2.0",
  "info": {
    "title": "",
    "version": ""
  },
  "schemes": [],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/api/Foo/GetBarDescriptions": {
      "get": {
        "tags": [
          "Foo"
        ],
        "operationId": "Foo_GetBarDescriptions",
        "parameters": [], …
Run Code Online (Sandbox Code Playgroud)

code-generation swagger typescript

16
推荐指数
6
解决办法
2万
查看次数

没有setter的属性的TypeScript接口签名.

我们在其中一个课程中有一个典型的getter,比方说

class Employee implements IEmployee {
    private _fullName: string;

    get fullName(): string {
        return this._fullName;
    }
}
Run Code Online (Sandbox Code Playgroud)

以及使用它的界面

interface IEmployee{
     fullName: string; 
}
Run Code Online (Sandbox Code Playgroud)

当通过此接口使用实例时,如果我们尝试分配给fullName,编译器将不会警告我们没有setter,并且JS运行时只是吞下任何赋值并且不会抛出错误.有没有办法将接口成员标记为只有getter或者只有setter?

我看过这篇文章,但它已经很老了,我想知道,如果有什么改进的话.

getter setter properties interface typescript

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

需要构建针对.NET Standard\Core而不是.NET Portable的Roslyn Analyzer

我正在使用Visual Studio 2017附带的默认Roslyn SDK模板.他们创建的项目以.NET Framework Portable为目标.我假设Roslyn可扩展性项目可以针对.NET Standard\Core而不是Portable,我正在寻找模板或我可以研究的Roslyn Analyzer\Refactoring项目示例.

analyzer roslyn .net-core .net-standard

6
推荐指数
2
解决办法
821
查看次数

我需要一个 CSharp 脚本 (.csx) 运行程序,例如 csi.exe,用于构建代理机器

我正在编写 .csx 构建脚本。在我的本地机器上,我从 Visual Studio 或通过C:\Program Files (x86)\MSBuild\14.0\bin\csi.exe. 我试过在 TeamCity 构建代理机器上运行 .csx 脚本(代理机器执行实际的构建任务,比如编译),它安装了 Microsoft Built Tools 2015。令人惊讶的是,csi.exeMSBuild 文件夹中没有。

我正在寻找一种csi.exe在我的构建代理机器上安装或兼容的独立 .csx 运行程序的方法。在 Google 中找到的选项,如https://github.com/cake-build/cake,似乎都有自己独特的脚本风格或许多附加功能,而我正在寻找csi.exe理想的克隆。

c# csx csi

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

类型通过联合分配意味着什么?

我正在阅读一篇文章:“Unionize 和 Objectify:将条件类型应用于对象的技巧”

在 TypeScript 中,我们最强大的工具是条件类型。这是因为他们有两个独特的能力:

  • 他们通过工会进行分配。
  • 它们使您能够使用 infer 关键字。

在一般情况下以及在这种情况下,“在工会上分配”意味着什么?

theory types typescript union-types conditional-types

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

MongoDB $项目采取某些属性(将其作为数组返回)

我有一个像这样的MongoDB集合

[
  { taskType:1, client:{name:"Moe",...}, ... },
  { taskType:1, client:{name:"Larry",...}, ... },
  { taskType:1, client:{name:"Curly",...}, ... }
]
Run Code Online (Sandbox Code Playgroud)

我可以对它运行以下$ project查询

{$project:{_id:0, client:"$client"}}
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

[
  { client:{name:"Moe",...} },
  { client:{name:"Larry",...} },
  { client:{name:"Curly",...} }
]
Run Code Online (Sandbox Code Playgroud)

但我实际上是在寻找这样的结果:

[
  {name:"Moe",...},
  {name:"Larry",...},
  {name:"Curly",...}
]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做(如果我可以的话)?提前致谢.

project mongodb

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

为什么JS模态消息框会在setTimeout()上暂停倒计时?

setTimeout当模态对话框窗口alert打开时,我遇到了JS的意外行为,我想知道它背后的原因.

我期望setTimeout(fn,10000)表示"定期检查当前时间,当它大于Now + 10000ms时,激活将调用传递的'fn'函数的事件处理程序".这是合乎逻辑的,看看我们如何将超时测量值传递为"ms from now".但是,显然,倒计时setTimeout是一个字面倒计时,并在模态窗口打开时暂停.

setTimeout(function(){
    //alert A
    alert("10 seconds have passed for the first setTimeout")
}, 10000);
setTimeout(function(){
    //alert B
    alert("Wait for 15 seconds and press OK");
},1000);
Run Code Online (Sandbox Code Playgroud)

在关闭警报B(假设您等待15秒)之后,我希望警报A立即显示,因为警报A超时仅持续10秒并且它们已经通过.但是,练习表明,当警报B打开时,警报A的倒计时只是暂停,并且仅在大约后显示.无论B打开多长时间,在关闭警报B后还有9秒钟过去了.

这似乎不符合逻辑.

更新.我绝对不是唯一一个在这里混淆的人,因为这种暂停超时的行为发生在Chrome和Internet Explorer中,而不是Firefox.Firefox会执行我预期的行为 - 如果您在警报B上等待15秒 - 警报A会在您关闭它时立即弹出.

javascript confirm alert modal-dialog settimeout

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

在打字稿更新 2.3.4 => 2.4.2 后,我收到编译错误“找不到‘reflect-metadata’的类型定义文件。”

我有一个用 TypeScript 编写的 React / Mobex 应用程序,由 Webpack 1 构建。将 TypeScript 版本从 2.3.4 更新到 2.4.2 后,出现错误

ERROR in C:\myproject\tsconfig.json
error TS2688: Cannot find type definition file for 'reflect-metadata'.
Run Code Online (Sandbox Code Playgroud)

我也尝试过 Typescript 2.7.2,同样的错误。我已经尝试明确提供其输入的路径"paths",尝试安装最新版本的'reflect-metadata',包括全局安装 - 仍然是相同的错误。

tsconfig.json

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "jsx": "react",
        "lib": ["dom", "es2015.promise", "es6"],
        "module": "commonjs",
        "moduleResolution": "node",
        "noImplicitAny": true,
        //"noUnusedLocals": true,
        "noUnusedParameters": true,
        "outDir": "./dist/",
        "sourceMap": true,
        "suppressImplicitAnyIndexErrors": true,
        "target": "es5",
        "types": ["reflect-metadata"],
        "baseUrl": ".",
        "paths": {
            "react-split-pane": ["./type_fixes/react-split-pane/index.d.ts"],
            "react-dropzone": ["./type_fixes/react-dropzone/index.d.ts"],
            "react-bootstrap-toggle": …
Run Code Online (Sandbox Code Playgroud)

typescript reflect-metadata typescript-typings

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

在 Angular 中,如何对子列表进行内容投影?

我有一个组件,它应该接受任意数量的已知类型的子组件,并使用*ngFor. 或者,我可以传递并渲染列表吗<ng-template>

容器将像这样使用:

<app-custom-container>
   <app-custom-child name="1">...</app-custom-child>
   <app-custom-child name="2">...</app-custom-child>
   <app-custom-child name="3">...</app-custom-child>
</app-custom-container>
Run Code Online (Sandbox Code Playgroud)

在容器模板内部我想做这样的事情:

template: '<div>
    <ng-container *ngFor="let child of ...?">
        <app-custom-child-internal-wrapper [id]="child.id">
             <ng-content/> <!--somehow only render this specific child-->
        </app-custom-child-internal-wrapper>
    </ng-content>
</div>'
Run Code Online (Sandbox Code Playgroud)

可以做这个或类似的事情吗?

children angular ng-content

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

在浏览器中运行 C# dll 仅用于计算

我有 fin 的 C# 代码。计算,我想在浏览器中运行它。我研究了 Blazor,但我能找到的所有示例都集中在 ASP.NET 上,而我想下载 .dll 或 .wasm 文件并从我现有的 Web 应用程序(用 Typescript 编写)执行它。我正在寻找这样的例子。

dll webassembly blazor

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

有没有办法在ServiceStack中手动调用路由,只使用一个字符串,否则将成为其URL?

我在ServiceStack中有这样的DTO

[Route("/skillslist/{TaskTypeId*}", WebMethods.Get)]
public class GetSkillsList : IReturn<List<SkillDto>>
{
    public long? TaskTypeId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和像这样的服务的方法

public List<SkillDto> Get(GetSkillsList request){...}
Run Code Online (Sandbox Code Playgroud)

在另一个不相关的方法(在同一个程序集中的另一个服务,同一个主机)中,我想触发上面的路由并得到它的结果,当我只有一个准备好的路由字符串,如"/ skillslist/5".

谁能告诉我怎么做?

c# servicestack

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

我可以在 Raspberry Pi 4 上使用 .NET SIMD 吗?

我正在编写代码,将减去两个数组中的相应字节并计算超过给定阈值的结果字节数。AFAIU,它真的会从 .NET SIMD 中受益,但是System.Numerics.Vector.IsHardwareAccelerated当我在 Raspberry Pi 4 上编译 C# 时返回 false。

我的dotnet版本是 3.1.406,我已经添加了

  <PropertyGroup>
    <Optimize>true</Optimize>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

到 csproj 和运行release配置。

有什么方法可以在 Raspberry Pi 4 上利用 .NET 中的 SIMD 支持?也许使用.NET 5?

更新 我安装了 .NET 5 并尝试了 .NET Intrinsics,但不支持:

Console.WriteLine(System.Runtime.Intrinsics.Arm.AdvSimd.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Aes.IsSupported);  //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.ArmBase.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Crc32.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Dp.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Rdm.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Sha1.IsSupported); //false
Console.WriteLine(System.Runtime.Intrinsics.Arm.Sha256.IsSupported); //false
Run Code Online (Sandbox Code Playgroud)

我使用的是 32 位 Raspbian(Debian 衍生版),是否有可能需要 64 位版本才能运行?

PS 为了澄清,在普通的 C# 中,算法看起来像这样:

  <PropertyGroup>
    <Optimize>true</Optimize>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

c# arm simd neon raspberry-pi

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

如何使用特定参数指定 Task("A").IsDependantOn("B")

我使用 Cakebuild 来定义一个标准的任务依赖:

var env = Argument("env", "DEV");

//… many tasks 

Task("Run-Integration-Tests")
        .IsDependentOn("Build")
        .Does(() =>
    {
        NUnit("./src/**/bin/release/*.Tests.dll");
    });
Run Code Online (Sandbox Code Playgroud)

我希望“运行集成测试”依赖于“构建”,专门使用“UAT”的“env”参数(因此如果未通过,则将其设置为“UAT”)。是否可以?

c# dependencies arguments task cakebuild

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