小编Mar*_*ijn的帖子

是否可以构造一个匹配 Grapheme_Cluster_Break=Extend 的 \p JavaScript regexp

Unicode 文本分割需要访问字符的Grapheme_Cluster_Break属性。众所周知,JavaScript 没有以直接方式提供。我希望我能够在正则表达式中使用Unicode 属性转义来解决这个问题,但这似乎并不那么简单/\p{Grapheme_Cluster_Break=Extend}/u。你可以\p{Grapheme_Extend},但那测试不同的东西。

有没有办法欺骗 JavaScript 运行时通过属性转义向我提供有关字符的 Grapheme_Cluster_Break 值的信息?(如果没有,为什么不呢?)

javascript regex unicode

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

可以在TypeScript中表达类型“相同类型的值对的数组”吗?

各个对可能具有不同的类型,但每个对应具有两个相同类型的值。如in [["foo", "bar"], [1, 2]]有效,但[["foo", 2]]无效。因此,[any, any][]过于宽泛。

有点像我想实例化type X<T> = [T, T]每个元素的类型,每个元素都不同T。(X<any>[]再次太宽泛)。

这可能吗?

(这是一个简化的问题,其中的元素是通用接口的实例,通常将其写为文字,我真的很喜欢TypeScript的帮助来捕获单个对象中的类型不匹配。)

typescript

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

在TypeScript中定义Partial &lt;T&gt;的逆

TypeScript具有Partial默认定义的类型,因此您可以说Partial<{x: number, y: string}>获得类似{x?: number, y?: string}的类型(类型的属性变为可选)。定义为

type Partial<T> = {
    [P in keyof T]?: T[P]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试定义反函数,我们称之为Full<T>,以确保对象中的所有属性都是必需的。我从一个明显的定义开始:

type Full<T> = {
    [P in keyof T]: T[P]
}
Run Code Online (Sandbox Code Playgroud)

只是Partial删除了问号。不幸的是,这不起作用-可选属性仍然是可选的。在某些情况下,打字稿似乎可以某种方式保留有关keyof类型中属性名称的要求的信息。

有趣的是,如果将该类型存储在中间类型名称中,则会删除该信息。即这有效:

type Config = {foo: number, bar?: string}
type ConfigKey = keyof Config
type FullConfig = {[K in ConfigKey]: Config[K]}
Run Code Online (Sandbox Code Playgroud)

FullConfig(至少在TypeScript 3.3中)bar是必需的。但是,如果您内联keyof Config到的定义中FullConfig,则它又是可选的。

我希望这是一个单一的,易于使用的类型,并且由于我不知道用于定义本地类型的类型声明的方法,因此该技巧似乎并没有太大帮助。

有什么我想念的技巧吗?

typescript

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

在 CSS flexbox 布局中,如果父级可垂直滚动,是否有办法将子块高度锁定到父(滚动)高度?

如果我有这样的 HTML 结构:

<div style="display: flex; align-items: stretch; height: 150px; overflow: auto">
  <div style="background: red; width: 30px"></div>
  <div style="background: yellow; flex-grow: 2; height: 200px"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

align-items: stretch将设置第一个孩子的身高在innerHeight柔性元素,而不是其实际的滚动高度。因此,当您向下滚动时,红色背景会停在初始视口的底部。

height: 100% 有一个类似的问题(高度是相对于父母的外尺寸)。

可以通过引入另一个包装元素并将overflowheight样式移动到该元素来解决此问题,但由于其他原因,在我的情况下这很尴尬。有没有办法让所有的 flex 孩子都具有相同的(完整的)高度而不这样做?

html css overflow flexbox

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

Ace Editor 加载新内容 动态清除旧内容 新内容

我正在使用 Ace Editor 在文本编辑器中加载 Html 内容,用户可以在其中编辑和保存自己的内容。因此用户可以退出并打开一个新的 HTML 。清除旧内容和加载新内容的程序是什么。

提前感谢您的帮助

javascript jquery html-editor ace-editor

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