小编Nur*_*yev的帖子

打字稿:什么是"裸型参数"

请参阅https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types

已检查类型为裸类型参数的条件类型...

谷歌没有帮助,或答案是针对C#,我不知道.无法在Typescript文档中找到该术语.从背景中获取意义也很难......

顺便说一下我知道什么是"类型参数".但"裸体"是什么意思呢?

typescript

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

打字稿:检查类型是否为联合

是否可以检查给定类型是否为联合?

type IsUnion<T> = ???
Run Code Online (Sandbox Code Playgroud)

为什么我需要这个:在我的代码中,我有唯一的情况,当一些收到的类型可以是一个联合.我用分配条件类型处理它.但是,对于查看此代码的人来说,首先使用DCT的原因并不明显.所以我希望它明确如下:IsUnion<T> extends true ? T extends Foo ...

我做了几次尝试UnionToIntersection,没有结果.我也想出了这个:

type IsUnion<T, U extends T = T> =
    T extends any ?
    (U extends T ? false : true)
    : never
Run Code Online (Sandbox Code Playgroud)

它给false了非工会,但由于某种原因它给boolean工会......我不知道为什么.我也infer从T 尝试过U,没有成功.

PS我的用例可能看起来像某人不完美/正确/好,但无论如何标题中的问题已经出现,我想知道它是否可能(我觉得它是,但我很难自己搞清楚).

typescript

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

如何在 TypeScript 中生成数字文字类型的增量版本?

是否有可能从数字类型T得到Y值为T+1的数字类型。

type one = 1

type Increment<T extends number> = ???

type two = Increment<one> // 2
Run Code Online (Sandbox Code Playgroud)

PS 目前,我有增量值的硬编码接口,但问题是硬编码的,因此受到限制:

export type IncrementMap = {
    0: 1,
    1: 2,
    2: 3,
Run Code Online (Sandbox Code Playgroud)

increment typescript typescript-typings

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

如何创建具有可变数量的类型参数的模板?

在我们的代码库中,我们经常使用std::variant<std::shared_ptr<SomeClass>, ...>

显然,这需要大量的写作。如何制作模板?

template <class... T>
using VarSP = std::variant<std::shared_ptr<???>>;
Run Code Online (Sandbox Code Playgroud)

T以上代码片段应该放在哪里?所需的行为应为:

VarSP<Foo, Bar, Baz> // std::variant<std::shared_ptr<Foo>, std::shared_ptr<Bar>, std::shared_ptr<Baz>>
Run Code Online (Sandbox Code Playgroud)

c++ variadic-templates pack-expansion

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

如何使包含枚举泛型的结构优于枚举变体?

请看一下代码:

struct Human {
  name: String,
  profession: Profession,
}

enum Profession {
  Doctor,
  Teacher
}

struct Family {
  family_doctor: // How to express type that will mean Human (because name matters) of profession Doctor?
}

Run Code Online (Sandbox Code Playgroud)

是否可以通过以Human某种方式进行泛型并将变体作为字段Doctor的类型参数传递来做到这一点?profession如果没有,那么您建议的这种关系最接近的解决方法是什么?

请注意,这个问题可能看起来与旧问题重复。但首先,Rust 不断发展,其次,我要求一种解决方法。

types rust

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

Tslint/eslint 与 Prettier

Tslint(可能和 eslint 一样)有一个 --fix 参数,可以修复样式错误。除了“更漂亮有更多的样式规则”之外,我还有什么理由应该考虑使用更漂亮吗?

eslint tslint prettier

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

打字稿map.get返回未定义

当我想要度过难关时,Objectkey拥有undefined所有元素。

我的地图:

nodesMaps : Map<number, Object> = [
{ key: "1", value: Object },
{ key: "2", value: Object },
{ key: "3", value: Object },
]
Run Code Online (Sandbox Code Playgroud)

当我想获取这张地图的值时:

this.nodesMaps.get(1) // return undefined
this.nodesMaps.get("1") // return undefined
Run Code Online (Sandbox Code Playgroud)

javascript typescript

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

如何找到NODE_MODULE_VERSION?

NODE_MODULE_VERSION在 Node.js 中可以知道吗?如果是,那么如何?我对 VSCode 的内置 Node.js 特别感兴趣,但也许 Node.js 不会公开该变量,但 VSCode API 会公开该变量?

node.js visual-studio-code

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

Npm 可执行文件名称冲突

在制作包含可执行文件的包时,如何避免与提供同名可执行文件的其他包发生名称冲突?

我什至做了一个实验:

  1. 在 package.json 中创建了包foo{"bin": {"baz": "./bin/baz"}}
  2. 在 package.json 中创建了 package bar{"bin": {"baz": "./bin/baz"}}
  3. 创建了包quux{"dependencies": {"foo": "../foo", "bar": "../bar"}}
  4. 检查了 quux/node_modules/.bin:它仅包含baz最后安装的软件包(bar)的一个可执行文件,即它覆盖(默默地!)第一个baz可执行文件,这是不可接受的。

有什么解决办法吗?

executable npm

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

打字稿:以符号为键解构对象

为什么此代码会产生错误Type 'symbol' cannot be used to index type '{ [x: string]: string; }'.

let symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj
             // ^^^^^ the error is here

console.log(alias)
Run Code Online (Sandbox Code Playgroud)

最重要的是,我该如何解决这个问题?

destructuring typescript

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