File: refactorExtractType69.ts

package info (click to toggle)
node-typescript 4.8.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 523,068 kB
  • sloc: javascript: 1,735,777; makefile: 7; sh: 1
file content (25 lines) | stat: -rw-r--r-- 740 bytes parent folder | download | duplicates (4)
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
/// <reference path='fourslash.ts' />

////type Foo<T> = {
////    fn:
////        keyof T extends string
////            ? /*a*/(x: `${keyof T}Foo`, callback: (y: keyof T) => void) => void/*b*/
////            : never;
////}

goTo.select("a", "b");
edit.applyRefactor({
    refactorName: "Extract type",
    actionName: "Extract to type alias",
    actionDescription: "Extract to type alias",
    newContent: [
        "type /*RENAME*/NewType<T> = (x: `${keyof T}Foo`, callback: (y: keyof T) => void) => void;",
        "",
        "type Foo<T> = {",
        "    fn:",
        "        keyof T extends string",
        "            ? NewType<T>",
        "            : never;",
        "}"
    ].join("\n"),
});