TypeScript: Fixed to break line and add a semi in one execution on one line long mapped types (#6420)
parent
a8d75a1464
commit
77e79bbfa5
|
@ -453,6 +453,26 @@ const foo = [abc, def, ghi, jkl, mno, pqr, stu, vwx, yz] as (
|
|||
)[];
|
||||
```
|
||||
|
||||
#### TypeScript: Fixed to break line and add a semicolon in one execution on one line long mapped types ([#6420] by [@sosukesuzuki])
|
||||
|
||||
Previously, when Prettier formatted long, one-line mapped types, it would break the line but didn’t add a semicolon – until you ran Prettier again (which broke Prettier’s idempotency rule). Now, Prettier adds the semicolon in the first run, fixing the issue.
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
```ts
|
||||
// Input
|
||||
type FooBar<T> = { [P in keyof T]: T[P] extends Something ? Something<T[P]> : T[P] }
|
||||
|
||||
// Prettier (stable)
|
||||
type FooBar<T> = {
|
||||
[P in keyof T]: T[P] extends Something ? Something<T[P]> : T[P]
|
||||
};
|
||||
|
||||
// Prettier (master)
|
||||
type FooBar<T> = {
|
||||
[P in keyof T]: T[P] extends Something ? Something<T[P]> : T[P];
|
||||
};
|
||||
```
|
||||
|
||||
[#5910]: https://github.com/prettier/prettier/pull/5910
|
||||
[#6186]: https://github.com/prettier/prettier/pull/6186
|
||||
[#6206]: https://github.com/prettier/prettier/pull/6206
|
||||
|
@ -468,6 +488,7 @@ const foo = [abc, def, ghi, jkl, mno, pqr, stu, vwx, yz] as (
|
|||
[#6307]: https://github.com/prettier/prettier/pull/6307
|
||||
[#6340]: https://github.com/prettier/prettier/pull/6340
|
||||
[#6412]: https://github.com/prettier/prettier/pull/6412
|
||||
[#6420]: https://github.com/prettier/prettier/pull/6420
|
||||
[@duailibe]: https://github.com/duailibe
|
||||
[@gavinjoyce]: https://github.com/gavinjoyce
|
||||
[@sosukesuzuki]: https://github.com/sosukesuzuki
|
||||
|
|
|
@ -3260,7 +3260,7 @@ function printPathNoParens(path, options, print, args) {
|
|||
: "",
|
||||
": ",
|
||||
path.call(print, "typeAnnotation"),
|
||||
shouldBreak && options.semi ? ";" : ""
|
||||
ifBreak(semi, "")
|
||||
])
|
||||
),
|
||||
comments.printDanglingComments(path, options, /* sameIndent */ true),
|
||||
|
|
|
@ -32,7 +32,7 @@ export type DeepReadonly<T> = T extends any[]
|
|||
: T;
|
||||
|
||||
type NonFunctionPropertyNames<T> = {
|
||||
[K in keyof T]: T[K] extends Function ? never : K
|
||||
[K in keyof T]: T[K] extends Function ? never : K;
|
||||
}[keyof T];
|
||||
|
||||
interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {}
|
||||
|
|
Loading…
Reference in New Issue