TypeScript: Improve argument expansion with `as` type expressions (#6471)
parent
90bb52439b
commit
bb037eb218
|
@ -709,4 +709,4 @@ const fooooooooooooooo: SomeThing<boolean> = looooooooooooooooooooooooooooooongN
|
|||
[@g-harel]: https://github.com/g-harel
|
||||
[@jounqin]: https://github.com/JounQin
|
||||
[@bakkot]: https://gibhub.com/bakkot
|
||||
[@thorn0]: https://github.com/thorn0
|
||||
[@thorn0]: https://github.com/thorn0
|
|
@ -3756,8 +3756,8 @@ function couldGroupArg(arg) {
|
|||
(arg.properties.length > 0 || arg.comments)) ||
|
||||
(arg.type === "ArrayExpression" &&
|
||||
(arg.elements.length > 0 || arg.comments)) ||
|
||||
arg.type === "TSTypeAssertion" ||
|
||||
arg.type === "TSAsExpression" ||
|
||||
(arg.type === "TSTypeAssertion" && couldGroupArg(arg.expression)) ||
|
||||
(arg.type === "TSAsExpression" && couldGroupArg(arg.expression)) ||
|
||||
arg.type === "FunctionExpression" ||
|
||||
(arg.type === "ArrowFunctionExpression" &&
|
||||
// we want to avoid breaking inside composite return types but not simple keywords
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`argument_expansion.js 1`] = `
|
||||
====================================options=====================================
|
||||
parsers: ["typescript"]
|
||||
printWidth: 80
|
||||
| printWidth
|
||||
=====================================input======================================
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, ([] as unknown) as number[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, <Array<number>>[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, ([1, 2, 3] as unknown) as number[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, <Array<number>>[1, 2, 3]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, ({} as unknown) as {[key: number]: boolean});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, <{[key: number]: boolean}>{});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, ({1: true} as unknown) as {[key: number]: boolean});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, <{[key: number]: boolean}>{1: true});
|
||||
|
||||
=====================================output=====================================
|
||||
const bar = [1, 2, 3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, ([] as unknown) as number[]);
|
||||
|
||||
const bar = [1, 2, 3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, <Array<number>>[]);
|
||||
|
||||
const bar = [1, 2, 3].reduce(
|
||||
(carry, value) => {
|
||||
return [...carry, value];
|
||||
},
|
||||
([1, 2, 3] as unknown) as number[]
|
||||
);
|
||||
|
||||
const bar = [1, 2, 3].reduce(
|
||||
(carry, value) => {
|
||||
return [...carry, value];
|
||||
},
|
||||
<Array<number>>[1, 2, 3]
|
||||
);
|
||||
|
||||
const bar = [1, 2, 3].reduce((carry, value) => {
|
||||
return { ...carry, [value]: true };
|
||||
}, ({} as unknown) as { [key: number]: boolean });
|
||||
|
||||
const bar = [1, 2, 3].reduce((carry, value) => {
|
||||
return { ...carry, [value]: true };
|
||||
}, <{ [key: number]: boolean }>{});
|
||||
|
||||
const bar = [1, 2, 3].reduce(
|
||||
(carry, value) => {
|
||||
return { ...carry, [value]: true };
|
||||
},
|
||||
({ 1: true } as unknown) as { [key: number]: boolean }
|
||||
);
|
||||
|
||||
const bar = [1, 2, 3].reduce(
|
||||
(carry, value) => {
|
||||
return { ...carry, [value]: true };
|
||||
},
|
||||
<{ [key: number]: boolean }>{ 1: true }
|
||||
);
|
||||
|
||||
================================================================================
|
||||
`;
|
|
@ -0,0 +1,31 @@
|
|||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, ([] as unknown) as number[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, <Array<number>>[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, ([1, 2, 3] as unknown) as number[]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return [...carry, value];
|
||||
}, <Array<number>>[1, 2, 3]);
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, ({} as unknown) as {[key: number]: boolean});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, <{[key: number]: boolean}>{});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, ({1: true} as unknown) as {[key: number]: boolean});
|
||||
|
||||
const bar = [1,2,3].reduce((carry, value) => {
|
||||
return {...carry, [value]: true};
|
||||
}, <{[key: number]: boolean}>{1: true});
|
|
@ -0,0 +1 @@
|
|||
run_spec(__dirname, ["typescript"]);
|
Loading…
Reference in New Issue