-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to patch/overwrite missing/wrong declarations #25495
Comments
It seems like the current behavior is actually ideal, because otherwise you'd have no way to remove an incorrect declaration? |
Maybe we need a way to partially change declarations. Many patched declarations are not very correct. |
Any news? I also want to override incorrect declaration of document.open (lib.d.ts) open(url?: string, name?: string, features?: string, replace?: boolean): Document; correct is: open(url: string, name: string, features: string): Window;
open(type?: string, replace?: string): Document; https://developer.mozilla.org/en-US/docs/Web/API/Document/open |
No news |
This really is an annoying limitation. Eg. relay-compiler just updated from version 6 to 7, so while I tried to update the relay-compiler-language-typescript plugin I needed to modify the existing generate function on an interface (in definitelytyped), to add another parameter to it. Instead of being able to make a local @types/relay-compiler file and make the override there, I have to use give the interface another name and use that throughout the code. Logically thinking you should be allowed to override from local definition file. |
In my case, the
And this infection affects how I use elasticsearch (that actually has |
I'm not sure if this is a correct topic, but I'm having related issues:
export declare function Entity(options?: EntityOptions): Function local import * as typeorm from 'typeorm'
declare module 'typeorm' {
export function Entity(options?: typeorm.EntityOptions): ClassDecorator;
export function Entity(name?: string, options?: typeorm.EntityOptions): ClassDecorator;
} UPD: |
Sometimes when working with changes on .d.ts files, restarting the TS Server fixes the issues, maybe that was your case? |
I am creating a library contains a class extends from eventemitter. I create declaration for some default event. I am looking a easy way to enhace the event types. So that my user can send the type event and listen the type event they like. It seems that this question is exactly what I was looking for. It should be noted that if you want to modify the type, you need this library to have a corresponding export |
I think something like this would be awesome. Fastify (a JS library with their own .d.ts declaration files) have some interfaces that could benefit from this. For example I'm trying to replace the FastifySchema interface that accepts unknown as values to actual schema definitions with TSchema from typebox, but I'm unable to replace their unknown types. |
One way to override module's incorrect index.d.ts: tsconfig.json
|
Search Terms
correct wrong declaration, fix declaration, overwrite module declaration, fix module type
Suggestion
Sometimes we encounter an npm module with missing declarations and incorrect declarations in its types file. Wish we have this ability patch/correct its declaration for temporary using before PR a patch and have it's released.
Current behavior & Workaround
Consider this situation, module
moduleWithIssues
indeed exportsitemExistedWithoutDeclaration
but its declaration file doesn't contain it, and has a incorrect declarationitemWithWrongDeclaration
At present, I found a workaround is adding a local module declaration for
itemExistedWithoutDeclaration
and assertitemWithWrongDeclaration
as its correct declarationIt works in
*.ts
file but not in*.d.ts
file. An idea patching solution should be re-declare some items ofmoduleWithIssues
in a*.d.ts
file in the project. like below:unfortunately this patch module will shadow original module declaration of
moduleWithIssues
package.foo
andbar
are reported non-existent.Checklist
My suggestion meets these guidelines:
The text was updated successfully, but these errors were encountered: