csstypes的CSS.Pseudo类型具有一堆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上不够好,或者那是不可能的。
答案 0 :(得分:0)
至少从TypeScript 3.5开始,您不能以编程方式执行此操作。
这是suggested之前的建议,该建议已作为string literal key augmentation或regular expression string literal validation建议的重复形式被关闭,这两种建议都没有特别接近于被纳入该语言的可能性。如果您确实希望看到这种情况发生,那么您可能想要解决其中一个或两个问题,并给它们打个“?”,或者如果您认为用例比已经存在的更具吸引力,请描述您的用例。
抱歉,这不是您可能想要的答案,但是至少您可以停止尝试让编译器为您执行此操作。祝你好运!