diff --git a/src/Languages/TypeScript/Patterns/TsGenericPattern.php b/src/Languages/TypeScript/Patterns/TsGenericPattern.php index 51d60bc..90b341d 100644 --- a/src/Languages/TypeScript/Patterns/TsGenericPattern.php +++ b/src/Languages/TypeScript/Patterns/TsGenericPattern.php @@ -14,7 +14,7 @@ final class TsGenericPattern implements Pattern public function getPattern(): string { - return '/(?<=\w)(?<[A-Z][\w\s,\.\[\]]*>)/'; + return '/(?<=\w)(?<[A-Z\'"][\w\s,\.\[\]\'"|]*>)/'; } public function getTokenType(): TokenTypeEnum diff --git a/tests/Languages/TypeScript/TypeScriptLanguageTest.php b/tests/Languages/TypeScript/TypeScriptLanguageTest.php index c7b12dd..76916ac 100644 --- a/tests/Languages/TypeScript/TypeScriptLanguageTest.php +++ b/tests/Languages/TypeScript/TypeScriptLanguageTest.php @@ -71,6 +71,14 @@ interface User { 'class Service {}', 'class Service<K, V extends Base> {}', ], + [ + "let filter: State<'all' | 'active' | 'done'> = 'all';", + 'let filter: State<\'all\' | \'active\' | \'done\'> = \'all\';', + ], + [ + 'let filter: State<"all" | "active" | "done"> = "all";', + 'let filter: State<"all" | "active" | "done"> = "all";', + ], [ <<<'TXT' @Component({ selector: 'x' })