-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
"types" field in package.json pointing to a .ts
file in node_modules results in the file being compiled and type checked
#35744
Comments
.ts
file in node_modules results in the file being compiled and type checked
By the way, when making things like class-factory mixins and then trying to emit declaration files we get problems like described in #23110. |
If we can't have implicit return types, etc, in declaration files, and we shouldn't point |
How can all features of TS be somehow supported in declaration files? Maybe implicit return types could look like this: export declare function AwesomeMixin<T extends Constructor>(Base: T) {
type Foo = SomeOtherType<T> // only types allowed in here.
// only special return statements allowed, or something.
return declare class Awesome extends Base {
method(): Foo
}
} where there's no implementation. It looks like an implementation being inside the |
Feature request: allow |
@sheetalkamat You recently merged #32028. Does that issue mean we can close this one? Can you also check my comments in that PR? |
Based on #40431 (comment) by @RyanCavanaugh, that PR #32028 compiles to If so, I think that can be the solution for this issue if it isn't already. Basically tsc would look at |
There's only one problem with this idea: all the issues listed in #35822 will happen, and cause errors regarding "private name", etc. |
Continuing from #22228
cc @evil-shrike
I have this issue.
@mhegazy said
But features like inferred return types (f.e. when making class-factory mixins) are not compilable to declaration files, resulting in errors like
Not entirely true.
As far as I know, the only way to use features (that declaration files don't support) in downstream projects is to get types directly from
.ts
source files. This makes the need to pointtypes
to.ts
source files a valid use case.This is what I think should happen:
If
"types"
points to a.ts
file, and"main"
points to a.js
file, then the compiler should use the.ts
file only for type definitions and not compile or type-check the code."main"
can serve as a guide to telling the compiler whether it should compile sources, or read js files."types"
should be for... specifying the source of types.Unless I missed it, there's no other way to include types for features that aren't representable in declaration files.
Why is it that declaration features don't match source features? It seems that an important goal should be for declaration features to always have the capability of matching source features.
The text was updated successfully, but these errors were encountered: