Skip to content

Commit d38bc54

Browse files
Merge pull request #13759 from Microsoft/fixMissingThis
Quick fix to add missing 'this.' for property accesses
2 parents 6fb2ae2 + 57e224c commit d38bc54

File tree

6 files changed

+41
-1
lines changed

6 files changed

+41
-1
lines changed

src/compiler/diagnosticMessages.json

+4
Original file line numberDiff line numberDiff line change
@@ -3267,6 +3267,10 @@
32673267
"category": "Message",
32683268
"code": 90007
32693269
},
3270+
"Add 'this.' to unresolved variable.": {
3271+
"category": "Message",
3272+
"code": 90008
3273+
},
32703274
"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig": {
32713275
"category": "Error",
32723276
"code": 90009
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/* @internal */
2+
namespace ts.codefix {
3+
registerCodeFix({
4+
errorCodes: [Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code],
5+
getCodeActions: (context: CodeFixContext) => {
6+
const sourceFile = context.sourceFile;
7+
const token = getTokenAtPosition(sourceFile, context.span.start);
8+
const start = token.getStart(sourceFile);
9+
10+
return [{
11+
description: getLocaleSpecificMessage(Diagnostics.Add_this_to_unresolved_variable),
12+
changes: [{ fileName: sourceFile.fileName, textChanges: [{ newText: "this.", span: { start, length: 0 } }] }]
13+
}];
14+
}
15+
});
16+
}

src/services/codefixes/fixes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/// <reference path="fixClassSuperMustPrecedeThisAccess.ts" />
44
/// <reference path="fixConstructorForDerivedNeedSuperCall.ts" />
55
/// <reference path="fixExtendsInterfaceBecomesImplements.ts" />
6+
/// <reference path="fixForgottenThisPropertyAccess.ts" />
67
/// <reference path='unusedIdentifierFixes.ts' />
78
/// <reference path='importFixes.ts' />
89
/// <reference path='helpers.ts' />
9-

src/services/tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"codefixes/fixClassDoesntImplementInheritedAbstractMember.ts",
8484
"codefixes/fixClassSuperMustPrecedeThisAccess.ts",
8585
"codefixes/fixConstructorForDerivedNeedSuperCall.ts",
86+
"codefixes/fixForgottenThisPropertyAccess.ts",
8687
"codefixes/fixes.ts",
8788
"codefixes/helpers.ts",
8889
"codefixes/importFixes.ts",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
////class C {
4+
//// foo: number;
5+
//// constructor() {
6+
//// [|foo = 10|];
7+
//// }
8+
////}
9+
10+
verify.rangeAfterCodeFix("this.foo = 10");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
////class C {
4+
//// constructor(public foo) {
5+
//// }
6+
//// bar() { [|foo = 10|] };
7+
////}
8+
9+
verify.rangeAfterCodeFix("this.foo = 10");

0 commit comments

Comments
 (0)