1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
=== tests/cases/compiler/templateLiteralIntersection2.ts ===
type Path = string & { _pathBrand: any };
>Path : string & { _pathBrand: any; }
>_pathBrand : any
type JoinedPath = `${Path}/${Path}`;
>JoinedPath : `${Path}/${Path}`
declare function joinedPath(p: JoinedPath): void;
>joinedPath : (p: JoinedPath) => void
>p : `${Path}/${Path}`
joinedPath("foo/bar");
>joinedPath("foo/bar") : void
>joinedPath : (p: `${Path}/${Path}`) => void
>"foo/bar" : "foo/bar"
declare const somePath: Path;
>somePath : Path
joinedPath(`${somePath}/${somePath}`);
>joinedPath(`${somePath}/${somePath}`) : void
>joinedPath : (p: `${Path}/${Path}`) => void
>`${somePath}/${somePath}` : `${Path}/${Path}`
>somePath : Path
>somePath : Path
type StartsWithA = `a${string}`;
>StartsWithA : `a${string}`
type EndsWithA = `${string}a`;
>EndsWithA : `${string}a`
declare function withinAs(p: StartsWithA & EndsWithA): void;
>withinAs : (p: StartsWithA & EndsWithA) => void
>p : `a${string}` & `${string}a`
withinAs("");
>withinAs("") : void
>withinAs : (p: `a${string}` & `${string}a`) => void
>"" : ""
withinAs("a");
>withinAs("a") : void
>withinAs : (p: `a${string}` & `${string}a`) => void
>"a" : "a"
withinAs("ab");
>withinAs("ab") : void
>withinAs : (p: `a${string}` & `${string}a`) => void
>"ab" : "ab"
withinAs("aba");
>withinAs("aba") : void
>withinAs : (p: `a${string}` & `${string}a`) => void
>"aba" : "aba"
withinAs("abavvvva");
>withinAs("abavvvva") : void
>withinAs : (p: `a${string}` & `${string}a`) => void
>"abavvvva" : "abavvvva"
|