小编Dmi*_*sky的帖子

如何在TypeScript 3.0中使用项目引用?

TypeScript 3.0中有一个名为Project References的新功能.它表明*.ts模块之间更好的交互.不幸的是,这是我从官方文档中得到的全部内容,尽管它似乎写得非常清楚和直接.

任何人都可以帮助我准确理解,它解决了什么问题,它是如何做到的,以及我将如何从中受益?我有一个类似结构的项目,所以它可能(或可能不)对它非常有帮助.先感谢您!


UPD:项目结构大致如下:

project/
    lib/
        index.ts # defines the original code
    test/
        index.spec.ts # requires lib/index.ts
    package.json
    tsconfig.json
Run Code Online (Sandbox Code Playgroud)

module typescript

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

每次推送后,GitHub 在我的 Pull 请求上显示“正在处理更新”

以前,每个git push开放的 Pull 请求都会立即显示。它可能会也可能不会触发 CI,但提交会立即显示在“提交”选项卡中。

现在,每次我将另一个提交推送到拉取请求分支时,它不会立即显示,而是出现“正在处理更新”加载指示器:

“正在处理更新”加载指示器

这是令人担忧的,因为 GitHub 界面仍然允许合并 Pull 请求,即使某些提交尚未处理。

不过,我没有更改任何配置,无论是在存储库中还是在我的个人资料中。

发生了什么?为什么要改变?

“外部链接”图标指的是间接合并拉取请求或仍在处理更新时提供的更多详细信息页面。该页面包含一段Pushed commits are still beingprocessed,这可能是相关的,但它没有很多信息:

帮助文章段落截图

具体来说,它没有解释为什么现在“处理[新提交]并出现在提交列表中需要比平常更长的时间”。

git github pull-request

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

我可以为来自 fork 的拉取请求设置默认存储库吗?

我有一个旧的、支持不太好的存储库的分支。在分叉中,每当我从功能分支master(即默认分支)创建拉取请求时,我每次都必须手动指定基本存储库:

手动指定 PR 基础存储库

BitBucket 也有类似的问题;它有一个很好的描述,但答案超出了这个范围。

我可以以某种方式更改 GitHub UI 的这种行为,以便针对特定存储库创建新的拉取请求吗?


我认为我可以通过对 repo 进行分叉来实现这一点,但我想保留分叉关系a)由于历史原因,b)出于对原作者的尊重,c)因为这是一个高度错误- 目前容易发生的过程(不幸的是,没有一个按钮可以实现这一点)

github pull-request

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

如何根据移动设备更改CSS?

在以下示例中,我只想显示一个div,具体取决于设备.

我熟悉如何使用@media覆盖CSS类但不熟悉如何执行条件.

<style type="text/css">
   @media (max-width : 770px) {
     ...
   }

  @media (max-width : 320px) {
   ...
  }
  //do I need another for the desktop?
</style>

//if desktop
<div style="width: 400px; float: left;">
    this is desktop
    <a href="somepage.html"><img src="aLargeImage.png"/></a>
</div>

//if mobile
<div style="width: 200px; float: left;">
    this is mobile
    <a href="somepage.html">just text</a>
</div>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

css mobile responsive-design

9
推荐指数
3
解决办法
6万
查看次数

如何使用 TypeScript API 将 tsconfig.json 编译为配置对象?

我正在寻找一个公共官方 TypeScript API(最好是 4.x 版本),用于将tsconfig.json/jsconfig.json文件解析为完整的 TypeScript 配置对象(我所说的“完整”是指,它的所有属性都填充了值,\xe2\x80\ x93 要么显式地取自*.json,要么隐式地取自已知的默认值),如下所示:

\n
import ts from "typescript";\n\nconst tsconfig = await ts.parseConfigFile(\'./tsconfig.json\');\n\ntsconfig.compilerOptions.noEmit;\n// false\n// (or whatever it is set to in *.json)\n
Run Code Online (Sandbox Code Playgroud)\n

typescriptnpm包里有这样的功能吗?我自己在文档Ctrl和 IntelliSense 建议(由+调用的建议)中都找不到它Space

\n

我看到了另一个具有相同类型请求的问题,但是a)它没有得到答复,b)评论中的链接引用了一个5.5年前的解决方案,\ xe2 \ x80 \ x93,那里\必须更改从那时起API。

\n
\n

实际上,我只需要配置文件中的少数属性,因此编写几个帮助程序来解析文件*.json并获取其内容相对容易。然而:

\n
    \n
  • 还有更多奇特的用例(例如使用项目引用和/或扩展父配置对象),在这些用例中,这样的解决方案不起作用;
  • \n
  • 前面提到的*.json对象可能有注释和尾随逗号,因此首先解析该文件并不简单;
  • \n
  • 重写已知已经写过的东西会很奇怪。
  • \n …

typescript tsconfig

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

Typescript 元组错误:目标需要 3 个元素,但源可能更少

我有简单的 TS 元组

const argTuple: {key1: string, key2: string, key3:string}[] = [
                {key: "key", key2: "key1", key3: "3"},
                {key: "key", key2: "key2", key3: "3"}
            ]

const arg:[string, string, string] = Object.values(argTuple)
Run Code Online (Sandbox Code Playgroud)

arg出现错误:Target requires 3 element(s) but source may have fewer.ts(2322)我不明白为什么元组在 TS 中可以有更少的元素。

typescript

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

为什么分配给'NaN`或`undefined`会导致TypeError?

AS:问题是关于错误的类型,而不是关于这种现象

"use strict"如果系统变量喜欢NaN并且undefined已经改变,则抛出TypeError .
但为什么它是类型错误?为什么不语法错误?


编辑:实际上,这里不是SyntaxError,因为代码段的语法没有错误.
但错误的根源在于,某些受保护对象无法手动更改 ; 所以,它是访问错误(没有这样的,我知道).
那么,为什么访问错误看起来像type-one?

javascript typeerror

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

什么是JS代码中的`Reflect.decorate`从TS转换而来?

TypeScript操场上玩装饰器时我注意到,在#3行上编译的代码检查是否存在该Reflect.decorate功能.
这个功能是什么?我既没有在SO上找到这个,也没有在MDN文档中Reflect找到这个.

javascript typescript

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

如何从类型中省略可选属性?

给定一个具有可选属性的对象类型,例如:

\n
interface Person {\n  name: string;\n  age: number;\n  friends?: Person[];\n  jobName?: string;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa6 我想删除它的所有可选属性,以便结果是:

\n
interface Person {\n  name: string;\n  age: number;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我怎样才能做到这一点?

\n
\n

请注意,我无法使用,Omit<Person, "friends" | "jobName">因为事先不知道实际属性。我必须以某种方式收集所有可选属性的键的并集:

\n
type OptionalKey<Obj extends object> = {\n  [Key in keyof Obj]: /* ... */ ? Key : never;\n}[keyof Obj];\n\ntype PersonOptionalKey = OptionalKey<Person>;\n// "friends" | "jobName"\n
Run Code Online (Sandbox Code Playgroud)\n

另外,打字稿删除可选属性的命名很糟糕,并且不能回答我的问题。

\n

properties typescript conditional-types

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

调用空数组的“every”和“some”方法会返回奇怪的结果

在 JavaScript 中,为什么该行会[].every(Boolean)返回true?并[].some(Boolean)返回false

如果数组中没有元素,那么它们是未定义的(未声明的),因此是假的。据此,带有数组[null]或 的片段将完全按照预测[undefined]返回。但是任何空数组都不应该首先 调用回调,并返回类似or 的内容,从而再次返回。false
Booleanundefinednullfalse

我错过了什么?

看起来,JS 解释器真正做的就是这个Boolean([])(在第一种情况下)。这当然会回报true。也许这是正确的?

javascript

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