正确设置通用接口对象的嵌套值

时间:2018-07-16 15:36:18

标签: typescript typescript2.0

在此处使用示例代码笔进行了更新: https://codepen.io/dalefenton/pen/ejZgqJ?editors=0011

对于一个<select>输入,我有一个采用通用类型的接口,该通用类型代表输入表单的数据,如下所示: interface definition

理想情况下,optionsAccessor必须是<D>中任何对象数组的类型定义的键(即,如果<D>看起来像{ model: Model, options: ModelOption[]},则optionsAccessor应该必须是ModelOption的键)。例如,在下面的第二个图像中,optionsAccessor必须是keyof Stackkeyof Organization,因为stackorganizationLinkAccountFormData中的唯一键以数组作为其值

类似地,对于optionsTexto参数的类型必须为StackOrganization(又称任意数组类型的一个,它是键的值) LinkAccountFormData

有了这个定义,我不得不在string键上使用额外的optionsAccessor选项,并且optionsText的配置错误,并且仅在{ {1}}类型为Model,因此我暂时将<D>设置为o: D[keyof D]

尝试使用此定义时,VSCode中针对此问题的

错误如下: enter image description here

是否可以使用泛型类型更详细地了解像这样的对象中的派生值?

0 个答案:

没有答案