Microsoft/TypeScript

[isolatedDeclarations] Type of const variable declared with template literal expression containing only literals still requires explicit annotation

Open

#59.157 aperta il 6 lug 2024

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)TypeScript (6726 fork)batch import
Domain: flag: isolatedDeclarationsHelp WantedPossible Improvement

Metriche repository

Star
 (48.455 star)
Metriche merge PR
 (Merge medio 6g 17h) (9 PR mergiate in 30 g)

Descrizione

🔎 Search Terms

isolated declarations template literal expression

🕗 Version & Regression Information

  • This is the behavior in every version I tried

⏯ Playground Link

https://www.typescriptlang.org/play/?isolatedDeclarations=true&ts=5.6.0-dev.20240705#code/KYDwDg9gTgLgBAG2PAZhCcC8cAGASAbwHIiBfHAbgCgrRJY4BjCAOwGd4AjAQyi10Ily1WuGioAri0YwAlqzg8AXgAoAlHAJU4OuFGQSoLAcTKUqpIA

💻 Code

export let foo = `${''}`;

export const bar = `${''}`;

export function baz() {
    return `${''}`;
}

🙁 Actual behavior

bar has a type error:

Variable must have an explicit type annotation with --isolatedDeclarations.(9010)
input.tsx(3, 14): Add a type annotation to the variable bar.

foo would also have a type error if as const was added to the expression.

🙂 Expected behavior

No type error

Additional information about the issue

fun fact: I accidentally discovered this behavior when I found that oxc-transform has type errors for both const, let, and return types.

Guida contributor