`ease` method on `St.Widget` no longer recognized by TypeScript after upgrading to @girs/[email protected]
Hello, and first of all, thank you so much for your amazing work — it’s thanks to your bindings that I was able to build my GNOME extension, Tiling Shell!
Since last year, I’ve been using the ease method from St.Widget without any issues. However, after upgrading the @girs/gnome-shell dependency to version 48.0.2, VS Code now reports the following error:
Property 'ease' does not exist on type 'Widget'.
To be clear, my extension compiles and runs fine, but VS Code flags the ease() call as a type error, which wasn't happening before!
I’ve confirmed this happens across different machines, and I can reproduce it with a minimal test setup. Here's a stripped-down example:
src/extension.ts
import '@girs/gnome-shell/extensions/global';
import St from 'gi://St';
import { Extension } from '@girs/gnome-shell/extensions/extension';
export default class TilingShellExtension extends Extension {
enable(): void {
const widget = new St.Widget();
widget.ease({
});
}
disable(): void {
}
}
package.json
{
"name": "My test",
"version": "16.3",
"author": "Domenico Ferraro <[email protected]>",
"private": true,
"license": "GPL v2.0",
"scripts": {
},
"devDependencies": {
"@girs/gnome-shell": "48.0.2"
}
}
tsconfig.json
{
"compilerOptions": {
"lib": ["ESNext"],
"types": [],
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler"
},
"include": ["src"],
"files": ["src/extension.ts"]
}
From what I can see, ease() is still defined in @girs/gnome-shell/extensions/global as usual but the TypeScript types no longer seem to be recognized.
Thanks in advance for any insight or suggestions!
This is indeed an issue, but it doesn't seem related to the version of @girs/gnome-shell. I got the error with 48.0.2 and 47.0.2. It could depend on the typescript version, as how we declare this helper from gnome-shell (it is not part of St per sé)
Or on the tsconfig and the moduleResolution. Is there a PR, or a commit, or multiple in your repo, that could be used to bisect that issue. So the last working commit and the first broken?