Browse Source
- Add experimentalDecorators and emitDecoratorMetadata to tsconfig.app.json - Configure useDefineForClassFields: false for proper class field handling - Add comprehensive type declarations for vue-facing-decorator@3.0.4 - Create global type declarations for Capacitor and DailyNotification plugin - Add reflect-metadata support for decorator functionality Enables proper TypeScript support for Class API components.master
4 changed files with 119 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||
/// <reference types="vite/client" />
|
|||
|
|||
declare module '*.vue' { |
|||
import type { DefineComponent } from 'vue' |
|||
const component: DefineComponent<{}, {}, any> |
|||
export default component |
|||
} |
|||
|
|||
// Vue-facing-decorator type declarations
|
|||
declare module 'vue-facing-decorator' { |
|||
import { ComponentOptions } from 'vue' |
|||
|
|||
export interface ComponentOptionsWithProps<T = any> extends ComponentOptions<T> { |
|||
props?: any |
|||
} |
|||
|
|||
export function Component(options?: any): any |
|||
export function toNative<T>(component: T): T |
|||
|
|||
export class Vue { |
|||
$emit(event: string, ...args: any[]): void |
|||
$props: any |
|||
$data: any |
|||
$refs: any |
|||
$slots: any |
|||
$scopedSlots: any |
|||
$attrs: any |
|||
$listeners: any |
|||
$parent: Vue | null |
|||
$root: Vue |
|||
$children: Vue[] |
|||
$el: Element | undefined |
|||
$options: ComponentOptions |
|||
$isServer: boolean |
|||
$ssrContext: any |
|||
$vnode: any |
|||
$createElement: any |
|||
$mount: any |
|||
$forceUpdate: () => void |
|||
$destroy: () => void |
|||
$nextTick: (callback?: () => void) => Promise<void> |
|||
$set: (target: any, key: string | number, value: any) => void |
|||
$delete: (target: any, key: string | number) => void |
|||
$watch: (expOrFn: string | Function, callback: Function, options?: any) => Function |
|||
$on: (event: string | string[], callback: Function) => Vue |
|||
$once: (event: string | string[], callback: Function) => Vue |
|||
$off: (event?: string | string[], callback?: Function) => Vue |
|||
} |
|||
|
|||
export function Prop(options?: any): PropertyDecorator |
|||
export function Emit(event?: string): MethodDecorator |
|||
export function Watch(path: string, options?: any): MethodDecorator |
|||
export function Inject(key?: string | symbol): PropertyDecorator |
|||
export function Provide(key?: string | symbol): PropertyDecorator |
|||
export function Model(event?: string, options?: any): PropertyDecorator |
|||
export function Ref(refKey?: string): PropertyDecorator |
|||
} |
@ -0,0 +1,7 @@ |
|||
export {} |
|||
|
|||
declare global { |
|||
interface Window { |
|||
Capacitor?: any |
|||
} |
|||
} |
@ -0,0 +1,43 @@ |
|||
/** |
|||
* Global Type Declarations |
|||
* |
|||
* Type definitions for global objects and plugins |
|||
* |
|||
* @author Matthew Raymer |
|||
* @version 1.0.0 |
|||
*/ |
|||
|
|||
declare global { |
|||
interface Window { |
|||
DailyNotification?: { |
|||
checkStatus(): Promise<{ |
|||
canScheduleNow: boolean |
|||
postNotificationsGranted: boolean |
|||
channelEnabled: boolean |
|||
channelImportance: number |
|||
channelId: string |
|||
exactAlarmsGranted: boolean |
|||
exactAlarmsSupported: boolean |
|||
androidVersion: number |
|||
nextScheduledAt: number |
|||
}> |
|||
scheduleNotification(options: { |
|||
title: string |
|||
body: string |
|||
scheduledTime: number |
|||
}): Promise<void> |
|||
cancelNotification(id: string): Promise<void> |
|||
requestPermissions(): Promise<boolean> |
|||
} |
|||
Capacitor?: { |
|||
Plugins?: { |
|||
DailyNotification?: any |
|||
Clipboard?: { |
|||
write(options: { string: string }): Promise<void> |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
export {} |
Loading…
Reference in new issue