我需要一个接口来描述一个总是包含一个函数的数据结构,但是可以包含任意数量的属性,这些属性都具有string的值。我知道这样的事情在理论上起作用:
declare interface Profile {
getXml: () => string;
[key: string]: string | Function;
}
但是,该接口不是100%准确,并且使得使用该类型的对象更加困难,因为我无法在不先检查或强制转换的情况下将该接口的属性分配给字符串。
有没有什么方法可以指定一个接口有一组具有自己唯一值类型的已知密钥,然后对该对象上的所有其他内容进行“全部捕获”?提交的解决方案here需要使用any
,这比我的更糟糕。
请参阅this Playground,看看为什么有些选项不起作用。
请参阅this Playground,查看通过this确实有效的选项。