TypeScript/tests/cases/fourslash/refactorExtractType_js4.ts
Wenlu Wang 714821fc97 add refactor of extract type (#30562)
* 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
2019-05-07 08:26:53 -07:00

35 lines
670 B
TypeScript

/// <reference path='fourslash.ts' />
// @allowJs: true
// @Filename: a.js
//// /**
//// * @template T
//// * @template U
//// * @param {T} b
//// * @param {U} c
//// * @returns {/*a*/T | U/*b*/}
//// */
//// function a(b, c) {}
goTo.file('a.js')
goTo.select("a", "b");
edit.applyRefactor({
refactorName: "Extract type",
actionName: "Extract to typedef",
actionDescription: "Extract to typedef",
newContent: `/**
* @template T
* @template U
* @typedef {T | U} /*RENAME*/NewType
*/
/**
* @template T
* @template U
* @param {T} b
* @param {U} c
* @returns {NewType<T, U>}
*/
function a(b, c) {}`,
});