feat: provide better types for injection keys

This commit is contained in:
meteorlxy
2022-07-06 15:19:29 +08:00
committed by GU Yiling
parent 948d522cf7
commit 1d4d0d0302
2 changed files with 11 additions and 12 deletions

View File

@ -14,7 +14,8 @@ import {
nextTick,
PropType,
watchEffect,
Vue2
Vue2,
InjectionKey
} from "vue-demi";
import { init as initChart } from "echarts/core";
import {
@ -44,9 +45,9 @@ if (Vue2) {
Vue2.config.ignoredElements.push(TAG_NAME);
}
export const THEME_KEY = "ecTheme";
export const INIT_OPTIONS_KEY = "ecInitOptions";
export const UPDATE_OPTIONS_KEY = "ecUpdateOptions";
export const THEME_KEY = "ecTheme" as unknown as InjectionKey<ThemeInjection>;
export const INIT_OPTIONS_KEY = "ecInitOptions" as unknown as InjectionKey<InitOptionsInjection>;
export const UPDATE_OPTIONS_KEY = "ecUpdateOptions" as unknown as InjectionKey<UpdateOptionsInjection>;
export { LOADING_OPTIONS_KEY } from "./composables";
export default defineComponent({
@ -69,15 +70,15 @@ export default defineComponent({
const root = shallowRef<HTMLElement>();
const chart = shallowRef<EChartsType>();
const manualOption = shallowRef<Option>();
const defaultTheme = inject(THEME_KEY, null) as ThemeInjection;
const defaultTheme = inject(THEME_KEY, null);
const defaultInitOptions = inject(
INIT_OPTIONS_KEY,
null
) as InitOptionsInjection;
);
const defaultUpdateOptions = inject(
UPDATE_OPTIONS_KEY,
null
) as UpdateOptionsInjection;
);
const { autoresize, manualUpdate, loading, loadingOptions } = toRefs(props);