Cherry-pick PR #47136 into release-4.5 (#47379)

Component commits:
e61702c7df Fix extract type crash

Co-authored-by: Andrew Branch <andrew@wheream.io>
This commit is contained in:
TypeScript Bot 2022-01-12 11:26:13 -08:00 committed by GitHub
parent a5ebd5382b
commit 0854a93040
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -145,8 +145,8 @@ namespace ts.refactor {
if (isTypeReferenceNode(node)) {
if (isIdentifier(node.typeName)) {
const symbol = checker.resolveName(node.typeName.text, node.typeName, SymbolFlags.TypeParameter, /* excludeGlobals */ true);
if (symbol?.declarations) {
const declaration = cast(first(symbol.declarations), isTypeParameterDeclaration);
const declaration = tryCast(symbol?.declarations?.[0], isTypeParameterDeclaration);
if (declaration) {
if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) {
pushIfUnique(result, declaration);
}

View File

@ -0,0 +1,10 @@
/// <reference path="fourslash.ts" />
//// import {Renderer} from '';
////
//// export class X {
//// constructor(renderer: /**/[|Renderer|]) {}
//// }
goTo.selectRange(test.ranges()[0]);
verify.refactorAvailable("Extract type", "Extract to type alias");