Closed
Description
TypeScript Version: 2.9.0-dev.201xxxxx
Search Terms: Refactor, extract type, typedef
In a TypeScript file Extract to type alias
:
var x: { a: number, b: string } = { .. };
would generate:
type newType = { a: number, b: string }
var x: newType = { .. };
In a JavaScript file Extract to typedef
:
/** @type {import("./c2").mytype} */
var x;
would generate:
/** @typedef {import("./c2").mytype} newType */
/**@type {myType} */
var x;
gif courtesy of @DanielRosenwasser
Activity
Kingwl commentedon Jun 11, 2018
it's very helpful to me
mhegazy commentedon Jun 11, 2018
@Kingwl is that something you would be interested to implement as well? we would accept a PR for this one.
Kingwl commentedon Jun 11, 2018
sure,but it going to be late,my deadline is coming😂
Kingwl commentedon Jun 19, 2018
something need to consider:
CallExpression
?mhegazy commentedon Jun 19, 2018
|undefined
from the type e.g.function f(a? :number | undefined)
=>type newType = number ; function f(a?: newType)
function f(a : number | string = 0)
should betype newType = number | string; function f(a: newType = 0)
I think you are confusing this feature with extract to named arguments. e.g.
function f(a: number, b:string)
=>function f({a, b}: {a: number, b:string})
. this one is tracked by #23552.Kingwl commentedon Jun 19, 2018
Yes, I confused the two feature (:sad) , this one looks like this is a relatively simple operation
Kingwl commentedon Jun 21, 2018
could you give some advice about the new name of the newType?
mhegazy commentedon Jun 21, 2018
dose not matter what name you pick really. it has to be unique. The new name will be the rename location for the refactoring, and thus the user will get to update it immateriality after the refactor is applied.
Kingwl commentedon Jun 21, 2018
should it trigger with signal primitive type and extract to a type alias?
mhegazy commentedon Jun 21, 2018
I suppose so.. any type node really should be extractable..
12 remaining items