我封装了一个下拉框,现在下拉选项的类型原打算是只有label和value属性,但是现在组件的使用场景扩大了,label和value对应的字段可能不一样,这样options的类型就没法指定了,因为传入的类属性不定,这该如何声明类型呢?
interface OptionsProp {
label?: string | number
value?: string
}
const props = defineProps({
label: propTypes.string,
value: propTypes.string,
labelField: propTypes.string.def('label'),
valueField: propTypes.string.def('value'),
options: Array as PropType<OptionsProp[]>,
disable: propTypes.bool.def(false),
})
// 使用
interface MyOption{
occupationCode:string
occupationName:string
}
const myOptions =ref<MyOption>([])
<MySelect
label="职业"
:value="info.occupationCode"
label-field="occupationName"
value-field="occupationCode"
:options="myOptions" // 这有警告信息
/>
myOptions的类型的属性名,也可能是其他,比如aaName,aaCode等等。
不能将类型“{ occupationCode: string; occupationName: string; }[]”分配给类型“OptionsProp[]”。
类型“{ occupationCode: string; occupationName: string; }”与类型“OptionsProp”不具有相同的属性
我这个options该如何定义能接受属性名不定的场景呢?属性目前是只有label和value两个字段
ts4.x我记得是支持动态key
那就不指定键值了
type OptionsProp = Record<string, any>
我现在想自定义一个属性,支持多种类型 我的代码: 但是一直报错:
LineSeries['areaStyle']的类型是AreaStyle | undefined 报错:类型“AreaStyle | undefined”上不存在属性“color”。 如何通过 LineSeries使用color属性的类型呢?
定义一个类型 条件1:变量类型是一个字符串。 条件2:变量值不是 get "typescript": "~5.2.2"
为什么需要这样AddDataType<'AlarmTips'> 才能正确获取类型? 不是已经使用 <T>进行关联了吗?
试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!