///
// global.d.ts 或 index.d.ts 中
interface FilePickerAcceptType {
description?: string;
accept: Record;
}
interface OpenFilePickerOptions {
multiple?: boolean;
types?: FilePickerAcceptType[];
excludeAcceptAllOption?: boolean;
}
interface SaveFilePickerOptions {
suggestedName?: string;
types?: FilePickerAcceptType[];
excludeAcceptAllOption?: boolean;
}
interface FileSystemWritableFileStream extends WritableStream {
write(data: Blob | BufferSource | string): Promise;
close(): Promise;
}
interface FileSystemFileHandle {
kind: 'file';
name: string;
getFile(): Promise;
createWritable(): Promise;
}
// global.d.ts
interface CookieStore {
get(name: string): Promise;
getAll(name?: string): Promise;
set(name: string, value: string): Promise;
set(options: CookieInit): Promise;
delete(name: string): Promise;
delete(options: CookieStoreDeleteOptions): Promise;
addEventListener(type: 'change', listener: (event: CookieChangeEvent) => void): void;
removeEventListener(type: 'change', listener: (event: CookieChangeEvent) => void): void;
}
declare var CookieStore: {
prototype: CookieStore;
new (): CookieStore;
};
interface Window {
cookieStore: CookieStore;
showOpenFilePicker(options?: OpenFilePickerOptions): Promise;
showSaveFilePicker(options?: SaveFilePickerOptions): Promise;
}