use interface instead of type

This commit is contained in:
Peter Fajdiga
2025-04-16 23:50:54 +02:00
parent 8c23535e86
commit 8725bc84e0
20 changed files with 70 additions and 70 deletions

View File

@@ -1,7 +1,7 @@
type DocsKeyBinding = {
interface DocsKeyBinding {
description: string;
keySequence: string;
};
}
function formatDescription(item: {description: string, comment?: string}) {
const suffix = item.comment === undefined ? "" : ` (${item.comment})`;

View File

@@ -1,4 +1,4 @@
type Config = {
interface Config {
gapsOuterTop: number;
gapsOuterBottom: number;
gapsOuterLeft: number;
@@ -25,4 +25,4 @@ type Config = {
tiledKeepBelow: boolean;
floatingKeepAbove: boolean;
windowRules: string;
};
}

View File

@@ -1,3 +1,3 @@
type DBusCall = QmlObject & {
interface DBusCall extends QmlObject {
call(): void;
};
}

View File

@@ -1,10 +1,10 @@
type KWin = {
interface KWin {
__brand: "KWin";
readConfig(key: string, defaultValue: any): any;
};
}
type Workspace = {
interface Workspace {
__brand: "Workspace";
readonly activities: string[];
@@ -28,7 +28,7 @@ type Workspace = {
readonly virtualScreenSizeChanged: QSignal<[]>;
clientArea(option: ClientAreaOption, output: Output, kwinDesktop: KwinDesktop): QmlRect;
};
}
const enum ClientAreaOption {
PlacementArea,
@@ -48,10 +48,10 @@ const enum MaximizedMode {
Maximized,
}
type Tile = { __brand: "Tile" };
type Output = { __brand: "Output" };
interface Tile { __brand: "Tile" }
interface Output { __brand: "Output" }
type KwinClient = {
interface KwinClient {
__brand: "KwinClient";
readonly caption: string;
@@ -96,15 +96,15 @@ type KwinClient = {
readonly frameGeometryChanged: QSignal<[oldGeometry: QmlRect]>;
setMaximize(vertically: boolean, horizontally: boolean): void;
};
}
type KwinDesktop = {
interface KwinDesktop {
__brand: "KwinDesktop";
readonly id: string;
};
}
type ShortcutHandler = QmlObject & {
interface ShortcutHandler extends QmlObject {
readonly activated: QSignal<[]>;
destroy(): void;
};
}

View File

@@ -1,3 +1,3 @@
type Notification = QmlObject & {
interface Notification extends QmlObject {
sendEvent(): void;
};
}

30
src/lib/extern/qt.ts vendored
View File

@@ -1,27 +1,27 @@
type Console = {
interface Console {
__brand: "Console";
log(...args: any[]): void;
assert(assertion: boolean, message?: string): void;
};
}
type Qt = {
interface Qt {
__brand: "Qt";
rect(x: number, y: number, width: number, height: number): QmlRect;
createQmlObject(qml: string, parent: QmlObject): QmlObject;
};
}
type QmlObject = { __brand: "QmlObject" };
interface QmlObject { __brand: "QmlObject" }
type QmlPoint = {
interface QmlPoint {
__brand: "QmlPoint";
x: number;
y: number;
};
}
type QmlRect = {
interface QmlRect {
__brand: "QmlRect";
x: number;
@@ -32,25 +32,25 @@ type QmlRect = {
readonly bottom: number; // top + height
readonly left: number;
readonly right: number; // left + width
};
}
type QmlSize = {
interface QmlSize {
__brand: "QmlSize";
width: number;
height: number;
};
}
type QSignal<T extends unknown[]> = {
interface QSignal<T extends unknown[]> {
__brand: "QSignal";
connect(handler: (...args: [...T]) => void): void;
disconnect(handler: (...args: [...T]) => void): void;
};
}
type QmlTimer = QmlObject & {
interface QmlTimer extends QmlObject {
interval: number;
readonly triggered: QSignal<[]>;
restart(): void;
destroy(): void;
};
}

View File

@@ -417,17 +417,17 @@ class Actions {
}
namespace Actions {
export type Config = {
export interface Config {
manualScrollStep: number;
presetWidths: {
next: (currentWidth: number, minWidth: number, maxWidth: number) => number;
prev: (currentWidth: number, minWidth: number, maxWidth: number) => number
};
columnResizer: ColumnResizer;
};
}
export type ColumnResizer = {
export interface ColumnResizer {
increaseWidth(column: Column): void;
decreaseWidth(column: Column): void;
};
}
}

View File

@@ -1,19 +1,19 @@
type KeyBinding = {
interface KeyBinding {
name: string;
description: string;
comment?: string;
defaultKeySequence?: string;
action: () => void;
};
}
type NumKeyBinding = {
interface NumKeyBinding {
name: string;
description: string;
comment?: string;
defaultModifiers: string;
fKeys: boolean;
action: (i: number) => void;
};
}
function catchWrap(f: () => void) {
return () => {

View File

@@ -175,7 +175,7 @@ class Desktop {
}
namespace Desktop {
export type Config = {
export interface Config {
marginTop: number;
marginBottom: number;
marginLeft: number;
@@ -185,7 +185,7 @@ namespace Desktop {
gestureScrollStep: number;
scroller: Desktop.Scroller;
clamper: Desktop.Clamper;
};
}
export class ColumnRange {
private left: Column;
@@ -259,11 +259,11 @@ namespace Desktop {
}
}
export type Scroller = {
export interface Scroller {
scrollToColumn(desktop: Desktop, column: Column): void;
};
}
export type Clamper = {
export interface Clamper {
clampScrollX(desktop: Desktop, x: number): number;
};
}
}

View File

@@ -1,4 +1,4 @@
type LayoutConfig = {
interface LayoutConfig {
gapsInnerHorizontal: number;
gapsInnerVertical: number;
stackOffsetX: number;
@@ -11,4 +11,4 @@ type LayoutConfig = {
tiledKeepBelow: boolean;
maximizedKeepAbove: boolean;
untileOnDrag: boolean;
};
}

View File

@@ -1,8 +1,8 @@
type Range = {
interface Range {
getLeft(): number;
getRight(): number;
getWidth(): number;
};
}
namespace Range {
export function create(x: number, width: number) {

View File

@@ -128,8 +128,8 @@ class Window {
}
namespace Window {
export type State = {
export interface State {
fullScreen: boolean;
maximizedMode: MaximizedMode;
};
}
}

View File

@@ -1,5 +1,5 @@
type WindowRule = {
interface WindowRule {
class: string | undefined;
caption: string | undefined;
tile: boolean;
};
}

View File

@@ -29,9 +29,9 @@ ${sequenceLine}}`,
}
namespace ShortcutAction {
export type KeyBinding = {
export interface KeyBinding {
name: string;
description: string;
defaultKeySequence?: string;
};
}
}

View File

@@ -84,13 +84,13 @@ function fillSpace(availableSpace: number, items: { min: number, max: number }[]
}
}
type Range = {
interface Range {
start: number,
end: number,
n: number,
};
}
type Fencepost = {
interface Fencepost {
value: number,
nMin: number,
nMax: number,

View File

@@ -214,7 +214,7 @@ class ClientManager {
}
namespace ClientManager {
export type Config = {
export interface Config {
floatingKeepAbove: boolean;
};
}
}

View File

@@ -20,7 +20,7 @@ namespace ClientState {
}
}
export type State = {
export interface State {
destroy(passFocus: boolean): void;
};
}
}

View File

@@ -253,8 +253,8 @@ namespace ClientState {
}
namespace Tiled {
export type WindowState = {
export interface WindowState {
skipSwitcher: boolean;
};
}
}
}

View File

@@ -1,5 +1,5 @@
namespace Assert {
type Options = {
interface Options {
message?: string,
skip?: number,
}

View File

@@ -16,7 +16,7 @@ class TestRunner {
}
namespace TestRunner {
export type Test = {
export interface Test {
name: string,
count: number,
f: () => void,