Repository navigation
[@types/masonry-layout] is missing direct calls to Masonry.data() #75600
Replies: 2 comments
|
Thanks for the discussion about " Pinging the DT module owners: @m-a-wilson, @WarriorRocker. |
|
This looks like a declaration bug in The current declaration puts data?(element: Element): Masonry;But Masonry's API exposes it as a static method, so the declaration should be on the class itself: declare class Masonry {
static data(element: Element): Masonry | undefined;
// existing constructors and instance methods...
}
With that declaration, the intended usage is: const element = document.getElementById("extension-masonry-row");
if (element) {
const masonry = Masonry.data(element);
masonry?.layout?.();
}Until the DefinitelyTyped package is updated, a narrow local workaround is: const MasonryWithData = Masonry as typeof Masonry & {
data(element: Element): Masonry | undefined;
};
const element = document.getElementById("extension-masonry-row");
if (element) {
MasonryWithData.data(element)?.layout?.();
}Checking Current declaration: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/masonry-layout/index.d.ts |
Uh oh!
There was an error while loading. Please reload this page.
The function works as expected in the browser, but typescript fails there.
If anyone comes across this before this is fixed, following code solves the issue
All reactions