mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-14 19:16:17 -06:00
fix(41868): Infer parameter from usage does not work on arrow functions that are a PropertyDeclaration of a Class (#41869)
This commit is contained in:
parent
9b2eab9da2
commit
4a9e2be386
@ -447,7 +447,7 @@ namespace ts.codefix {
|
||||
case SyntaxKind.ArrowFunction:
|
||||
case SyntaxKind.FunctionExpression:
|
||||
const parent = containingFunction.parent;
|
||||
searchToken = isVariableDeclaration(parent) && isIdentifier(parent.name) ?
|
||||
searchToken = (isVariableDeclaration(parent) || isPropertyDeclaration(parent)) && isIdentifier(parent.name) ?
|
||||
parent.name :
|
||||
containingFunction.name;
|
||||
break;
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @noImplicitAny: true
|
||||
// @Filename: test.ts
|
||||
////class MyClass {
|
||||
//// bar = (a, b, c, d, e, f) => {};
|
||||
////};
|
||||
////
|
||||
////interface I {
|
||||
//// x: number;
|
||||
////}
|
||||
////
|
||||
////enum E {
|
||||
//// X
|
||||
////}
|
||||
////
|
||||
////function foo(x: MyClass) {
|
||||
//// const a = 1;
|
||||
//// const b = "";
|
||||
//// const c = { x: 1, y: 1 };
|
||||
//// const d = [1, 2, 3];
|
||||
//// const e: I = { x: 1 };
|
||||
//// const f: E = E.X;
|
||||
//// x.bar(a, b, c, d, e, f);
|
||||
////}
|
||||
|
||||
verify.codeFixAll({
|
||||
fixId: "inferFromUsage",
|
||||
fixAllDescription: "Infer all types from usage",
|
||||
newFileContent:
|
||||
`class MyClass {
|
||||
bar = (a: number, b: string, c: { x: number; y: number; }, d: number[], e: I, f: E) => {};
|
||||
};
|
||||
|
||||
interface I {
|
||||
x: number;
|
||||
}
|
||||
|
||||
enum E {
|
||||
X
|
||||
}
|
||||
|
||||
function foo(x: MyClass) {
|
||||
const a = 1;
|
||||
const b = "";
|
||||
const c = { x: 1, y: 1 };
|
||||
const d = [1, 2, 3];
|
||||
const e: I = { x: 1 };
|
||||
const f: E = E.X;
|
||||
x.bar(a, b, c, d, e, f);
|
||||
}`,
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user