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"),
});
|