summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev/manifest-util.js4
-rw-r--r--ext/js/comm/frame-client.js2
-rw-r--r--ext/js/core.js6
-rw-r--r--ext/js/data/database.js6
-rw-r--r--ext/js/data/json-schema.js2
-rw-r--r--ext/js/display/display-generator.js2
-rw-r--r--ext/js/dom/selector-observer.js2
-rw-r--r--ext/js/general/cache-map.js3
-rw-r--r--ext/js/general/task-accumulator.js3
-rw-r--r--ext/js/language/translator.js2
-rw-r--r--ext/js/pages/settings/keyboard-mouse-input-field.js2
-rw-r--r--ext/js/pages/settings/profile-controller.js2
-rw-r--r--test/json-schema.test.js2
-rw-r--r--types/ext/anki-templates-internal.d.ts2
-rw-r--r--types/ext/api.d.ts2
-rw-r--r--types/ext/cache-map.d.ts2
-rw-r--r--types/ext/core.d.ts2
-rw-r--r--types/ext/dictionary-data-util.d.ts2
-rw-r--r--types/ext/dictionary-database.d.ts6
-rw-r--r--types/ext/dictionary-worker.d.ts6
-rw-r--r--types/ext/dom-data-binder.d.ts24
-rw-r--r--types/ext/dynamic-property.d.ts2
-rw-r--r--types/ext/selector-observer.d.ts12
-rw-r--r--types/ext/task-accumulator.d.ts2
24 files changed, 51 insertions, 49 deletions
diff --git a/dev/manifest-util.js b/dev/manifest-util.js
index ac9b58db..6a53c8d6 100644
--- a/dev/manifest-util.js
+++ b/dev/manifest-util.js
@@ -25,7 +25,7 @@ import {parseJson} from './json.js';
const dirname = path.dirname(fileURLToPath(import.meta.url));
/**
- * @template T
+ * @template [T=unknown]
* @param {T} value
* @returns {T}
*/
@@ -240,7 +240,7 @@ export class ManifestUtil {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T[]} array1
* @param {T[]} array2
* @param {number} lengthOffset
diff --git a/ext/js/comm/frame-client.js b/ext/js/comm/frame-client.js
index b07bb796..5e997622 100644
--- a/ext/js/comm/frame-client.js
+++ b/ext/js/comm/frame-client.js
@@ -56,7 +56,7 @@ export class FrameClient {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T} data
* @returns {import('frame-client').Message<T>}
* @throws {Error}
diff --git a/ext/js/core.js b/ext/js/core.js
index d16a2099..d2372352 100644
--- a/ext/js/core.js
+++ b/ext/js/core.js
@@ -48,7 +48,7 @@ export function stringReverse(string) {
/**
* Creates a deep clone of an object or value. This is similar to `parseJson(JSON.stringify(value))`.
- * @template T
+ * @template [T=unknown]
* @param {T} value The value to clone.
* @returns {T} A new clone of the value.
* @throws An error if the value is circular and cannot be cloned.
@@ -245,7 +245,7 @@ export function generateId(length) {
/**
* Creates an unresolved promise that can be resolved later, outside the promise's executor function.
- * @template T
+ * @template [T=unknown]
* @returns {import('core').DeferredPromiseDetails<T>} An object `{promise, resolve, reject}`, containing the promise and the resolve/reject functions.
*/
export function deferPromise() {
@@ -514,7 +514,7 @@ export class EventListenerCollection {
/**
* Class representing a generic value with an override stack.
* Changes can be observed by listening to the 'change' event.
- * @template T
+ * @template [T=unknown]
* @augments EventDispatcher<import('dynamic-property').EventType>
*/
export class DynamicProperty extends EventDispatcher {
diff --git a/ext/js/data/database.js b/ext/js/data/database.js
index c8047b41..43ac9e5b 100644
--- a/ext/js/data/database.js
+++ b/ext/js/data/database.js
@@ -153,7 +153,7 @@ export class Database {
}
/**
- * @template TPredicateArg
+ * @template [TPredicateArg=unknown]
* @template [TResult=unknown]
* @template [TResultDefault=unknown]
* @param {TObjectStoreName} objectStoreName
@@ -174,8 +174,8 @@ export class Database {
}
/**
- * @template TData
- * @template TPredicateArg
+ * @template [TData=unknown]
+ * @template [TPredicateArg=unknown]
* @template [TResult=unknown]
* @template [TResultDefault=unknown]
* @param {IDBObjectStore|IDBIndex} objectStoreOrIndex
diff --git a/ext/js/data/json-schema.js b/ext/js/data/json-schema.js
index d63cfd1a..52a55d85 100644
--- a/ext/js/data/json-schema.js
+++ b/ext/js/data/json-schema.js
@@ -249,7 +249,7 @@ export class JsonSchema {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T} value
* @returns {T}
*/
diff --git a/ext/js/display/display-generator.js b/ext/js/display/display-generator.js
index 7bedfa12..ccdd49cf 100644
--- a/ext/js/display/display-generator.js
+++ b/ext/js/display/display-generator.js
@@ -845,7 +845,7 @@ export class DisplayGenerator {
}
/**
- * @template TItem
+ * @template [TItem=unknown]
* @template [TExtraArg=void]
* @param {HTMLElement} container
* @param {(item: TItem, arg: TExtraArg) => ?Node} createItem
diff --git a/ext/js/dom/selector-observer.js b/ext/js/dom/selector-observer.js
index 8dd18242..cff2985c 100644
--- a/ext/js/dom/selector-observer.js
+++ b/ext/js/dom/selector-observer.js
@@ -18,7 +18,7 @@
/**
* Class which is used to observe elements matching a selector in specific element.
- * @template T
+ * @template [T=unknown]
*/
export class SelectorObserver {
/**
diff --git a/ext/js/general/cache-map.js b/ext/js/general/cache-map.js
index cc706380..a995b8c7 100644
--- a/ext/js/general/cache-map.js
+++ b/ext/js/general/cache-map.js
@@ -18,7 +18,8 @@
/**
- * @template K,V
+ * @template [K=unknown]
+ * @template [V=unknown]
* Class which caches a map of values, keeping the most recently accessed values.
*/
export class CacheMap {
diff --git a/ext/js/general/task-accumulator.js b/ext/js/general/task-accumulator.js
index cb136908..86cb9e3e 100644
--- a/ext/js/general/task-accumulator.js
+++ b/ext/js/general/task-accumulator.js
@@ -19,7 +19,8 @@
import {log} from '../core.js';
/**
- * @template K,V
+ * @template [K=unknown]
+ * @template [V=unknown]
*/
export class TaskAccumulator {
/**
diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js
index e33ea4d4..bf22ee6b 100644
--- a/ext/js/language/translator.js
+++ b/ext/js/language/translator.js
@@ -1887,7 +1887,7 @@ export class Translator {
// Miscellaneous
/**
- * @template T
+ * @template [T=unknown]
* @param {Set<T>} set
* @param {T[]} values
* @returns {boolean}
diff --git a/ext/js/pages/settings/keyboard-mouse-input-field.js b/ext/js/pages/settings/keyboard-mouse-input-field.js
index 99af3941..f50ca112 100644
--- a/ext/js/pages/settings/keyboard-mouse-input-field.js
+++ b/ext/js/pages/settings/keyboard-mouse-input-field.js
@@ -315,7 +315,7 @@ export class KeyboardMouseInputField extends EventDispatcher {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T[]} array1
* @param {T[]} array2
* @returns {boolean}
diff --git a/ext/js/pages/settings/profile-controller.js b/ext/js/pages/settings/profile-controller.js
index 6e0710a8..c54bfe73 100644
--- a/ext/js/pages/settings/profile-controller.js
+++ b/ext/js/pages/settings/profile-controller.js
@@ -595,7 +595,7 @@ export class ProfileController {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T} currentValue
* @param {T} value1
* @param {T} value2
diff --git a/test/json-schema.test.js b/test/json-schema.test.js
index e6817d23..fb7644de 100644
--- a/test/json-schema.test.js
+++ b/test/json-schema.test.js
@@ -50,7 +50,7 @@ function createProxy(schema, value) {
}
/**
- * @template T
+ * @template [T=unknown]
* @param {T} value
* @returns {T}
*/
diff --git a/types/ext/anki-templates-internal.d.ts b/types/ext/anki-templates-internal.d.ts
index 4cb50050..2842765d 100644
--- a/types/ext/anki-templates-internal.d.ts
+++ b/types/ext/anki-templates-internal.d.ts
@@ -53,7 +53,7 @@ export type CreateDetails = {
media?: AnkiTemplates.Media;
};
-export type CachedValue<T> = {
+export type CachedValue<T = unknown> = {
getter: () => T;
hasValue: boolean;
value: T | undefined;
diff --git a/types/ext/api.d.ts b/types/ext/api.d.ts
index 2d78cc06..41d3a96d 100644
--- a/types/ext/api.d.ts
+++ b/types/ext/api.d.ts
@@ -34,7 +34,7 @@ import type * as Translator from './translator';
// Generic
-export type Handler<TDetails, TResult, THasSender extends boolean = false> = (
+export type Handler<TDetails = unknown, TResult = unknown, THasSender extends boolean = false> = (
details: TDetails,
sender: (THasSender extends true ? chrome.runtime.MessageSender : void)
) => (TResult | Promise<TResult>);
diff --git a/types/ext/cache-map.d.ts b/types/ext/cache-map.d.ts
index 0af7109a..fcf969e8 100644
--- a/types/ext/cache-map.d.ts
+++ b/types/ext/cache-map.d.ts
@@ -15,7 +15,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-export type Node<K, V> = {
+export type Node<K = unknown, V = unknown> = {
key: K | null;
value: V | null;
previous: Node<K, V> | null;
diff --git a/types/ext/core.d.ts b/types/ext/core.d.ts
index b83e6a74..d1a4ef8f 100644
--- a/types/ext/core.d.ts
+++ b/types/ext/core.d.ts
@@ -41,7 +41,7 @@ export type TokenString = string;
export type TokenObject = Record<string, never>;
-export type DeferredPromiseDetails<T> = {
+export type DeferredPromiseDetails<T = unknown> = {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (reason?: RejectionReason) => void;
diff --git a/types/ext/dictionary-data-util.d.ts b/types/ext/dictionary-data-util.d.ts
index 75128368..b78e6439 100644
--- a/types/ext/dictionary-data-util.d.ts
+++ b/types/ext/dictionary-data-util.d.ts
@@ -45,7 +45,7 @@ export type KanjiFrequenciesMap2Data = {
export type TermFrequenciesMap3 = Map<string, FrequencyData>;
-export type DictionaryFrequency<T> = {
+export type DictionaryFrequency<T = unknown> = {
dictionary: string;
frequencies: T[];
};
diff --git a/types/ext/dictionary-database.d.ts b/types/ext/dictionary-database.d.ts
index 6569f76b..3202ef60 100644
--- a/types/ext/dictionary-database.d.ts
+++ b/types/ext/dictionary-database.d.ts
@@ -230,11 +230,11 @@ export type FindMultiBulkData<TItem = unknown> = {
indexIndex: number;
};
-export type CreateQuery<TItem> = (item: TItem) => (IDBValidKey | IDBKeyRange | null);
+export type CreateQuery<TItem = unknown> = (item: TItem) => (IDBValidKey | IDBKeyRange | null);
-export type FindPredicate<TItem, TRow> = (row: TRow, item: TItem) => boolean;
+export type FindPredicate<TItem = unknown, TRow = unknown> = (row: TRow, item: TItem) => boolean;
-export type CreateResult<TItem, TRow, TResult> = (row: TRow, data: FindMultiBulkData<TItem>) => TResult;
+export type CreateResult<TItem = unknown, TRow = unknown, TResult = unknown> = (row: TRow, data: FindMultiBulkData<TItem>) => TResult;
export type DictionarySet = {
has(value: string): boolean;
diff --git a/types/ext/dictionary-worker.d.ts b/types/ext/dictionary-worker.d.ts
index 17030691..ac076ab8 100644
--- a/types/ext/dictionary-worker.d.ts
+++ b/types/ext/dictionary-worker.d.ts
@@ -29,7 +29,7 @@ export type InvokeDetails<TResponseRaw = unknown, TResponse = unknown> = {
formatResult: ((result: TResponseRaw) => TResponse) | null;
};
-export type MessageCompleteData<TResponseRaw> = {
+export type MessageCompleteData<TResponseRaw = unknown> = {
action: 'complete';
params: MessageCompleteParams<TResponseRaw>;
};
@@ -44,7 +44,7 @@ export type MessageGetImageDetailsData = {
params: MessageGetImageDetailsParams;
};
-export type MessageCompleteParams<TResponseRaw> = Core.Response<TResponseRaw>;
+export type MessageCompleteParams<TResponseRaw = unknown> = Core.Response<TResponseRaw>;
export type MessageProgressParams = {
args: unknown[];
@@ -56,7 +56,7 @@ export type MessageGetImageDetailsParams = {
mediaType: string;
};
-export type MessageData<TResponseRaw> = MessageCompleteData<TResponseRaw> | MessageProgressData | MessageGetImageDetailsData;
+export type MessageData<TResponseRaw = unknown> = MessageCompleteData<TResponseRaw> | MessageProgressData | MessageGetImageDetailsData;
export type MessageCompleteResultSerialized = {
result: DictionaryImporter.Summary;
diff --git a/types/ext/dom-data-binder.d.ts b/types/ext/dom-data-binder.d.ts
index ca0036c3..5de941ff 100644
--- a/types/ext/dom-data-binder.d.ts
+++ b/types/ext/dom-data-binder.d.ts
@@ -17,28 +17,28 @@
import type * as TaskAccumulator from './task-accumulator';
-export type CreateElementMetadataCallback<T> = (element: Element) => T | undefined;
+export type CreateElementMetadataCallback<T = unknown> = (element: Element) => T | undefined;
-export type CompareElementMetadataCallback<T> = (metadata1: T, metadata2: T) => boolean;
+export type CompareElementMetadataCallback<T = unknown> = (metadata1: T, metadata2: T) => boolean;
-export type GetValuesCallback<T> = (args: GetValuesDetails<T>[]) => Promise<TaskResult[]>;
+export type GetValuesCallback<T = unknown> = (args: GetValuesDetails<T>[]) => Promise<TaskResult[]>;
-export type SetValuesCallback<T> = (args: SetValuesDetails<T>[]) => Promise<TaskResult[]>;
+export type SetValuesCallback<T = unknown> = (args: SetValuesDetails<T>[]) => Promise<TaskResult[]>;
-export type GetValuesDetails<T> = {
+export type GetValuesDetails<T = unknown> = {
element: Element;
metadata: T;
};
-export type SetValuesDetails<T> = {
+export type SetValuesDetails<T = unknown> = {
element: Element;
metadata: T;
value: ValueType;
};
-export type OnErrorCallback<T> = (error: Error, stale: boolean, element: Element, metadata: T) => void;
+export type OnErrorCallback<T = unknown> = (error: Error, stale: boolean, element: Element, metadata: T) => void;
-export type ConstructorDetails<T> = {
+export type ConstructorDetails<T = unknown> = {
selector: string;
createElementMetadata: CreateElementMetadataCallback<T>;
compareElementMetadata: CompareElementMetadataCallback<T>;
@@ -47,7 +47,7 @@ export type ConstructorDetails<T> = {
onError?: OnErrorCallback<T> | null;
};
-export type ElementObserver<T> = {
+export type ElementObserver<T = unknown> = {
element: Element;
type: NormalizedElementType;
value: unknown;
@@ -70,17 +70,17 @@ export type AssignTaskValue = {value: ValueType};
export type ValueType = boolean | string | number | null;
-export type UpdateTask<T> = [
+export type UpdateTask<T = unknown> = [
key: ElementObserver<T> | null,
task: TaskAccumulator.Task<UpdateTaskValue>,
];
-export type AssignTask<T> = [
+export type AssignTask<T = unknown> = [
key: ElementObserver<T> | null,
task: TaskAccumulator.Task<AssignTaskValue>,
];
-export type ApplyTarget<T> = [
+export type ApplyTarget<T = unknown> = [
observer: ElementObserver<T>,
task: TaskAccumulator.Task<UpdateTaskValue> | TaskAccumulator.Task<AssignTaskValue> | null,
];
diff --git a/types/ext/dynamic-property.d.ts b/types/ext/dynamic-property.d.ts
index 5ec886d2..ba15257a 100644
--- a/types/ext/dynamic-property.d.ts
+++ b/types/ext/dynamic-property.d.ts
@@ -17,6 +17,6 @@
export type EventType = 'change';
-export type ChangeEventDetails<T> = {
+export type ChangeEventDetails<T = unknown> = {
value: T;
};
diff --git a/types/ext/selector-observer.d.ts b/types/ext/selector-observer.d.ts
index a84b2add..2b3e9381 100644
--- a/types/ext/selector-observer.d.ts
+++ b/types/ext/selector-observer.d.ts
@@ -15,15 +15,15 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-export type OnAddedCallback<T> = (element: Element) => T | undefined;
+export type OnAddedCallback<T = unknown> = (element: Element) => T | undefined;
-export type OnRemovedCallback<T> = (element: Element, data: T) => void;
+export type OnRemovedCallback<T = unknown> = (element: Element, data: T) => void;
-export type OnChildrenUpdatedCallback<T> = (element: Element, data: T) => void;
+export type OnChildrenUpdatedCallback<T = unknown> = (element: Element, data: T) => void;
-export type IsStaleCallback<T> = (element: Element, data: T) => boolean;
+export type IsStaleCallback<T = unknown> = (element: Element, data: T) => boolean;
-export type ConstructorDetails<T> = {
+export type ConstructorDetails<T = unknown> = {
/** A string CSS selector used to find elements. */
selector: string;
/** A string CSS selector used to filter elements, or `null` for no filtering. */
@@ -48,7 +48,7 @@ export type MutationRecordLike = {
target: Node;
};
-export type Observer<T> = {
+export type Observer<T = unknown> = {
element: Element;
ancestors: Node[];
data: T;
diff --git a/types/ext/task-accumulator.d.ts b/types/ext/task-accumulator.d.ts
index f02d449b..e96ba6a6 100644
--- a/types/ext/task-accumulator.d.ts
+++ b/types/ext/task-accumulator.d.ts
@@ -15,7 +15,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-export type Task<V> = {
+export type Task<V = unknown> = {
data: V;
stale: boolean;
};