714821fc97
* add basically implement
* add rename location and add testcase
* collection type arguments
* disallow infer type
* add support for typedef convert
* refactor info to make type safe
* disallow type pred
* avoid unnecessary branch
* disallow type query
* haha😂
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* Update src/services/refactors/extractType.ts
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* Update src/services/refactors/extractType.ts
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* add more tests
* add template tag support in jsdoc
* add support of type parameters constraint
* add more tests
* merge branch
* add more tests
* refactor and update function name
27 lines
722 B
TypeScript
27 lines
722 B
TypeScript
/// <reference path='fourslash.ts' />
|
|
|
|
// Where do lines get inserted?
|
|
// The exact structure here doesn't matter,
|
|
// just want to see something within a block body
|
|
// to have the behavior defined in tests.
|
|
//// function id<T>(x: T): T {
|
|
//// return (() => {
|
|
//// const s: /*a*/typeof x/*b*/ = x;
|
|
//// return s;
|
|
//// })();
|
|
//// }
|
|
|
|
goTo.select("a", "b");
|
|
edit.applyRefactor({
|
|
refactorName: "Extract type",
|
|
actionName: "Extract to type alias",
|
|
actionDescription: "Extract to type alias",
|
|
newContent: `function id<T>(x: T): T {
|
|
return (() => {
|
|
type /*RENAME*/NewType = typeof x;
|
|
|
|
const s: NewType = x;
|
|
return s;
|
|
})();
|
|
}`,
|
|
});
|