Skip to content

Template literal type reduction is inconsistent (regression in 5.5-beta)Β #58687

Closed
@ahejlsberg

Description

@ahejlsberg

πŸ”Ž Search Terms

Template literal type reduction

πŸ•— Version & Regression Information

This changed in 5.5-beta (as reported in #58685).

⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.5.0-beta&ssl=7&ssc=1&pln=1&pc=1#code/MYewdgzgLgBApmArgWxgURgbxgQxgXhgCIciAaGAIwOMqJgF8BuAKBagE8AHOGAZSgAnAJZgA5sIBmHADwAVeAA8oCACYQY0EeIB8NAAYASTHIb7WLADZxYALwCMALhhHMaMzRJEmMX398A9AEwAPIA1lY2MLYATM4C2hLSMmh6hF4+MEHogoIgggCELEA

πŸ’» Code

const enum E { a = "a", b = "b" };

type Stringify<T extends string> = `${T}`;

let z1: `${E}` = "a";        // Ok
let z2: Stringify<E> = "a";  // Error!

πŸ™ Actual behavior

Error as indicated.

πŸ™‚ Expected behavior

No error.

Additional information about the issue

This is a regression from 5.4.5. Error is caused by reduction introduced in #55371.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptFix AvailableA PR has been opened for this issueRecent RegressionThis is a new regression just found in the last major/minor version of TypeScript.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions