CSS.伪类型的 csstypes 有一堆 CSS 选择器,比如 ':hover' 、 ':active' 等等。
是否可以创建一个基于 CSS.Pseudo 的新类型,它接受所有 CSS.Pseudo 类型,但前面有一个“&”?
例如'&:hover'、'&:active'等。
我希望能够做类似的事情
type CSS.Pseudo = ':hover' | ':active' ... etc.
type CssStyle= { [SOMETHINGSOMETHING CSS.Pseudo]: string}
const styles: CssStyle= {
'@:hover: someCssString, //OK
':hover: someCssString, //NOT OK
'&:hov': someCssString //NOT OK
}
我在 TS Playground 上尝试了十亿个东西,但我觉得我在 TS 上不够好,或者根本不可能。
最佳答案
您不能以编程方式执行此操作,至少从 TypeScript 3.5 开始是这样。
这是 suggested之前,建议作为 string literal key augmentation 的副本关闭或 regular expression string literal validation建议,这两者都没有特别接近于被纳入语言。如果你真的想看到这种情况发生,你可能想解决其中一个或两个问题并给他们一个 👍 或者如果你认为它比现有的更有吸引力的话,可能会描述你的用例。
抱歉,这可能不是您想要的答案,但至少您可以停止尝试让编译器为您做这件事。祝你好运!
关于css - 基于另一个创建新的字符串文字类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637731/