小编Ara*_*ker的帖子

处理 TypeScript 中类型改变的副作用

这更多是一个关于如何处理具有类型改变副作用的函数的开放问题TypeScript。我知道并且强烈同意这样的观点:函数应该尽可能减少副作用(如果有的话)。

但有时,需要就地更改对象(及其类型) ,而不是使用另一个静态类型创建它的新副本。我最常遇到的原因是可读性效率减少行数

由于我最初的示例过于复杂且过于复杂(希望如此),这里是一个非常基本的示例:

type KeyList = 'list' | 'of' | 'some' | 'keys';

// Original type (e.g. loaded from a JSON file)
interface Mappable {
    source: { [K in KeyList]: SomeNestedObject },
    sourceOrder: KeyList[];
}

// Mapped Type (mapped for easier access)
interface Mapped {
    source: { [K in KeyList]: SomeNestedObject },
    sourceOrder: SomeDeepObject[];
}

// What I have to do to keep suggestions and strict types all …
Run Code Online (Sandbox Code Playgroud)

javascript side-effects code-readability typescript typescript-typings

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

没有静音的 HTML 视频自动播放(或 youtube 是如何做到的)?

我知道许多较新的浏览器现在会autoplay在视频未muted播放时禁用或将其静音然后播放。如果没有用户交互,也无法调用视频播放。这是可以理解的,但我想知道 youtube 如何仍然能够以声音开始视频。

我查了一下,他们确实使用了视频标签,只是没有使用任何autoplay/muted属性并加载一些 blob。这不是打开视频的用户交互,它也在隐身模式下打开链接时开始。

所以我的结论,应该还是有可能的。但是如何?或者浏览器是否为受信任的视频流网站添加了某种例外?

提前致谢

html html5-video

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

CSS 绝对位置面向兄弟而不是父

我现在对绝对定位有点困惑。我一直认为,如果我绝对定位一个元素,它将相对于它的父元素定位(与相对于它的通常位置(如相对定位)相反)。在做作业时,我现在遇到了这种情况,我很困惑:

<body>
  <div> <!-- This is colored red in my example -->
    ...
  </div>
  <div style="position: absolute;"> <!-- This is colored green in my example -->
    ...
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我期望的是: 我期待什么 我得到了什么: 我得到了什么

当然,当我设置的实际位置与left/ right/ top/bottom我得到什么,我会从一个绝对定位的元素的期望。那么是否position: absolute只是设置为在没有position: absolute另外指定的情况下采用它所在的确切位置?

html css css-position

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

为什么 &lt;input type="color"&gt; value 属性只接受十六进制颜色?

我昨天编写了这段代码,我注意到输入类型颜色值属性值不适用于直接颜色名称。但适用于十六进制值。为什么?

<! --- Not Working--->
<input type="color" value="red">
<! --- Working --->
<input type="color" value="#ff0000">
Run Code Online (Sandbox Code Playgroud)

html javascript css

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