Enable Typescript noImplicitThis (#33250)

- Enable https://www.typescriptlang.org/tsconfig/#noImplicitThis
- Wrap Vue Template-Syntax SFCs in
[`defineComponent`](https://vuejs.org/api/general#definecomponent) which
makes type inference and linter work better
- Move `createApp` calls outside the SFCs into separate files
- Use [`PropType`](https://vuejs.org/api/utility-types#proptype-t) where
appropriate
- Some top-level component properties changed order as dictated by the
linter
- Fix all tsc and lint issues that popped up during these refactors
This commit is contained in:
silverwind 2025-01-15 21:26:17 +01:00 committed by GitHub
parent b15d01b0ce
commit 4b21a6c792
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 209 additions and 190 deletions

View file

@ -1,4 +1,5 @@
<script lang="ts">
import {defineComponent, type PropType} from 'vue';
import {SvgIcon} from '../svg.ts';
import dayjs from 'dayjs';
import {
@ -56,11 +57,11 @@ Chart.register(
customEventListener,
);
export default {
export default defineComponent({
components: {ChartLine, SvgIcon},
props: {
locale: {
type: Object,
type: Object as PropType<Record<string, any>>,
required: true,
},
repoLink: {
@ -88,7 +89,7 @@ export default {
this.fetchGraphData();
fomanticQuery('#repo-contributors').dropdown({
onChange: (val) => {
onChange: (val: string) => {
this.xAxisMin = this.xAxisStart;
this.xAxisMax = this.xAxisEnd;
this.type = val;
@ -320,7 +321,7 @@ export default {
};
},
},
};
});
</script>
<template>
<div>