[microsoft/TypeScript] [isolatedDeclarations] function expressions as an argument to a function call that is exported are reported as needing an annotation (Issue #62085)
DRANK

bradzacher created an issue (microsoft/TypeScript#62085) ### 🔎 Search Terms "isolatedDeclarations", "function return type", "exported variable" ### 🕗 Version & Regression Information - This changed between versions 5.6.3 and 5.7.3 ### ⏯ Playground Link https://www.typescriptlang.org/play/?isolatedDeclarations=true#code/JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQokscA3ivsBAHZwC+cREuRAQARgA9aDcNHhsxqLFABuSvgOKkyIiQFpKeGFLpZxTeLm6p4AYRKQuWLvAC8cBUtVQAFN4CUcC4AfKx0cHCUMACuUDwAPEFxAPRB9Lx+9CZmsnCWXNZwMAAWwFwA5oHsMJxc3gRRXBzccP6h4ZExPHYyjs5pGXRAA ### 💻 Code ```ts import * as React from 'react'; import { action } from 'mobx'; import { observer } from 'mobx-react'; export const Component = observer(() => { return <></>; }); export const thing = action(function () { return Component; }); ``` ### 🙁 Actual behavior ```ts import * as React from 'react'; import { action } from 'mobx'; import { observer } from 'mobx-react'; export const Component = observer(() => { ~~~~~~~~~ Variable must have an explicit type annotation with --isolatedDeclarations. ~~~~~ Function must have an explicit return type annotation with --isolatedDeclarations. return <></>; }); export const thing = action(function () { ~~~~~ Variable must have an explicit type annotation with --isolatedDeclarations. ~~~~~~~~ Function must have an explicit return type annotation with --isolatedDeclarations. return Component; }); ``` ### 🙂 Expected behavior ```ts import * as React from 'react'; import { action } from 'mobx'; import { observer } from 'mobx-react'; export const Component = observer(() => { ~~~~~~~~~ Variable must have an explicit type annotation with --isolatedDeclarations. return <></>; }); export const thing = action(function () { ~~~~~ Variable must have an explicit type annotation with --isolatedDeclarations. return Component; }); ``` ### Additional information about the issue The function expressions are not directly exported so they should not be reported on at all. This is causing `ts-fix` to insert many unnecessary annotations when codemodding the codebase at Canva because there's no way for it to tell that annotating the variable will silence the error on the function -- so it adds both annotations. -- Reply to this email directly or view it on GitHub: https://github.com/microsoft/TypeScript/issues/62085 You are receiving this because you are subscribed to this thread. Message ID: <microsoft/TypeScript/issues/62085@github.com>

github.com
Related Topics: TypeScript
1 comments