从字符串结果中排除字符串



我想定义一个类型,其中所有属性都是只读的,看起来像key:string value:string,但'set'属性是一个函数。

我已经试过了:

type Attributes = {
readonly [key in Exclude<string, 'set'>]:string
} & { 
readonly set: (attr:string, value:string) => void 
}

我的问题是Exclude<string, 'set'>是"简化的"。回到string。有经验的人能解释一下TypeScript为什么这样做吗?一些建议如何实现一个类型,我只知道几个属性键(但可能有更多)可以帮助我。

感谢您的时间和回答!

目前在typescript中,不可能创建像"任何字符串除了…"这样的类型,Exclude<string, '...'>总是导致string。这只是我们现在要处理的typescript的一个限制。

无论如何,这个类型似乎是有效的

type Attributes = {
readonly [key: string]: string
} & { 
readonly set: (attr:string, value:string) => void 
}

你不能给一个没有set属性的对象赋值这个属性必须是你在这里指定的函数,所以看起来你可以直接使用它

相关内容

  • 没有找到相关文章

最新更新