这是我看到的代码:
const symbolConverters: {
[K in ts.SymbolFlags]?: string
} = {
[ts.SymbolFlags.RegularEnum]: 'convertEnum',
}
请问一下:
1、[K in ts.SymbolFlags]?
这里的?
是什么意思呢?
2、[K in ts.SymbolFlags]
这里使用 []
扩住的意思是什么呢?
1、[K in ts.SymbolFlags]?
这里的?
是什么意思呢?
这里的?是可选属性的意思,也就是说在这个对象里面不是所有的ts.SymbolFlags
都需要有一个对应的值。如果某个ts.SymbolFlags
枚举成员没有在对象中定义,则该枚举成员在这个对象中就没有对应的属性。
2、[K in ts.SymbolFlags]
这里使用 []
扩住的意思是什么呢?
意思是要进行类型的映射。举例来说,现在有一个类型A和另一个类型B:
type A = {
foo: number;
bar: number;
};
type B = {
foo: string;
bar: string;
};
这两个类型的属性结构是一样的,但是属性的类型不一样。如果属性数量多的话,逐个写起来就很麻烦,那么可以这么写:
type A = {
foo: number;
bar: number;
};
type B = {
[prop in keyof A]: string;
};
类型B采用了属性名索引的写法,[prop in keyof A]
表示依次得到类型A的所有属性名,然后将每个属性的类型改成 string,那么[K in ts.SymbolFlags]?: string
的意思就是依次得到ts.SymbolFlags枚举成员的属性名,然后每个属性的类型改成 string,由于是可选属性,所以不一定每个枚举成员都会有属性映射。
参考来源:阮一峰老师的ts教程
举例来说,react或vue项目里。CSS用到url的时候,~和@是什么用法。在哪里配置的,MDN里好像也没写这个。求一个完整的步骤
问题内容: 我是Go的新手,在浏览其他一些线程时遇到了以下代码行: 含义是什么?它是否指定将在if条件中分配某些内容(因为err似乎正在发生这种情况)?我在Wiki上找不到这种语法的示例,并且我很好奇它的用途。 问题答案: 因为返回两个值,所以如果需要它们中的任何一个,都必须在某个地方接收这些值。该是一个占位符,基本的意思是“我不关心这个特殊的返回值。” 在这里,我们只关心检查错误,而无需对实际的
问题内容: 这个头衔看起来并不那么疯狂。我承诺!! 在研究另一个问题时,我在Stack Overflow的样式表中注意到以下内容: 这是一种奇怪的条件样式吗?这是一个错误吗?假设这不是一个错误,那么它适用于所有IE版本吗?有没有一种方法可以指定给定规则仅适用于大于(例如7)的IE版本? 我以前从未遇到过-我一直在使用条件注释来表示IE特定的样式(以及其价值,我宁愿将所有IE特定样式完全分开)。 问
在VSCode中,我把鼠标移动在:GenerateStyle,会显示出如截图的提示,请问下: 1、(alias)是什么意思呢? 2、是对GenerateStyle做了什么吗,才会显示出这个alias? 3、我们看到还有:import GenerateStyle,请问这个在这里有什么用,原因是什么呢?
所以我有这行代码。它给了我输出[6,28]。你们知道为什么吗?我不知道有人想打印什么样的数字。
我运行了几个测试场景,其中我从SOAP客户端调用远程系统的SOA服务,并遇到了各种远程异常。你能帮我确定每个错误意味着什么吗- 1) java.net网站。ConnectException:连接被拒绝“ 2)Java . net . socket time out异常:连接超时" 3) 连接异常: 连接超时”