-
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
isolatedDeclarations should not have warning for functions that have no return statements #58330
Comments
This error is intentional; a function without a return may not always be declare function fail(): never;
export function f() {
fail();
}
export const g = () => {
fail();
} Is: export declare function f(): void;
export declare const g: () => never; This can't be determined without type analysis, so is disallowed under |
Correct error for function expressions, but not function declarations - declarations won't infer |
#58331 is indiscriminate in what it affects; if we want to allow this for function declarations only, that may be possible, but it sure seems like an extra inconsistency just to avoid writing |
hmm, I didn't think of |
Discussed and we don't want to make it untenable to, in the future, change the rules around function declaration return type inference. For example, it's maybe preferable that function dofail() {
Debug.fail("oops");
} have an inferred return type of |
π Search Terms
isolatedDeclaration
π Version & Regression Information
5.5.0
β― Playground Link
https://www.typescriptlang.org/play/?isolatedDeclarations=true&ts=5.5.0-dev.20240426#code/KYDwDg9gTgLgBAMwK4DsDGMCWEWIBQCUcA3gL5A
π» Code
π Actual behavior
Function must have an explicit return type annotation with --isolatedDeclarations. (9007)
π Expected behavior
No error
Additional information about the issue
Functions with no return statements can be easily inferred as type
void
, so there is no need to give this warning.The text was updated successfully, but these errors were encountered: