fix: MkSelectのmodelに対する型チェックを厳格化
This commit is contained in:
parent
79dc0e682d
commit
9634c1ccdb
|
@ -67,7 +67,7 @@ export type GetMkSelectValueTypesFromDef<T extends MkSelectItem[]> = T[number] e
|
||||||
: never;
|
: never;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts" setup generic="ITEMS extends MkSelectItem[], MODELT = string extends GetMkSelectValueTypesFromDef<ITEMS> ? OptionValue : GetMkSelectValueTypesFromDef<ITEMS>">
|
<script lang="ts" setup generic="ITEMS extends MkSelectItem[], MODELT extends OptionValue">
|
||||||
import { onMounted, nextTick, ref, watch, computed, toRefs } from 'vue';
|
import { onMounted, nextTick, ref, watch, computed, toRefs } from 'vue';
|
||||||
import { useInterval } from '@@/js/use-interval.js';
|
import { useInterval } from '@@/js/use-interval.js';
|
||||||
import type { MenuItem } from '@/types/menu.js';
|
import type { MenuItem } from '@/types/menu.js';
|
||||||
|
@ -85,7 +85,11 @@ const props = defineProps<{
|
||||||
large?: boolean;
|
large?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const model = defineModel<MODELT>({ required: true });
|
const model = defineModel<MODELT & (
|
||||||
|
MODELT extends GetMkSelectValueTypesFromDef<ITEMS>
|
||||||
|
? unknown
|
||||||
|
: 'Error: The type of model does not match the type of items.'
|
||||||
|
)>({ required: true });
|
||||||
|
|
||||||
const { autofocus } = toRefs(props);
|
const { autofocus } = toRefs(props);
|
||||||
const focused = ref(false);
|
const focused = ref(false);
|
||||||
|
|
Loading…
Reference in New Issue