这更多是一个关于如何处理具有类型改变副作用的函数的开放问题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
我知道许多较新的浏览器现在会autoplay在视频未muted播放时禁用或将其静音然后播放。如果没有用户交互,也无法调用视频播放。这是可以理解的,但我想知道 youtube 如何仍然能够以声音开始视频。
我查了一下,他们确实使用了视频标签,只是没有使用任何autoplay/muted属性并加载一些 blob。这不是打开视频的用户交互,它也在隐身模式下打开链接时开始。
所以我的结论,应该还是有可能的。但是如何?或者浏览器是否为受信任的视频流网站添加了某种例外?
提前致谢
我现在对绝对定位有点困惑。我一直认为,如果我绝对定位一个元素,它将相对于它的父元素定位(与相对于它的通常位置(如相对定位)相反)。在做作业时,我现在遇到了这种情况,我很困惑:
<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另外指定的情况下采用它所在的确切位置?
我昨天编写了这段代码,我注意到输入类型颜色值属性值不适用于直接颜色名称。但适用于十六进制值。为什么?
<! --- Not Working--->
<input type="color" value="red">
<! --- Working --->
<input type="color" value="#ff0000">
Run Code Online (Sandbox Code Playgroud)