From 959b3201f180b4054ec4cfa96b70d9cf0c44bcbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=80=E1=85=AF=E1=86=AB=E1=84=80=E1=85=B5=E1=84=87?= =?UTF-8?q?=E1=85=A5=E1=86=B7?= Date: Thu, 14 May 2020 22:01:31 +0900 Subject: [PATCH 01/12] =?UTF-8?q?TypeScript=203.9.md=20bumkeyy=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EB=B2=88=EC=97=AD=20(resolve=20#70)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/release notes/TypeScript 3.9.md | 56 +++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 10727cfa..42b720ab 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -1,5 +1,5 @@ -* [Improvements in Inference and `Promise.all`](#improvements-in-inference-and-promiseall) -* [Speed Improvements](#speed-improvements) +* [추론과 `Promise.all` 개선](#improvements-in-inference-and-promiseall) +* [속도 향상](#speed-improvements) * [`// @ts-expect-error` Comments](#-ts-expect-error-comments) * [Uncalled Function Checks in Conditional Expressions](#uncalled-function-checks-in-conditional-expressions) * [Editor Improvements](#editor-improvements) @@ -9,10 +9,10 @@ * [Support for "Solution Style" `tsconfig.json` Files](#support-for-solution-style-tsconfigjson-files) * [Breaking Changes](#breaking-changes) -## Improvements in Inference and `Promise.all` +## 추론과 `Promise.all` 개선 (`Improvements in Inference and `Promise.all`) -Recent versions of TypeScript (around 3.7) have had updates to the declarations of functions like `Promise.all` and `Promise.race`. -Unfortunately, that introduced a few regressions, especially when mixing in values with `null` or `undefined`. +최신 버전의 TypeScript(약 3.7)는 `Promise.all` 및 `Promise.race`와 같은 함수 선언이 업데이트되었습니다. +운이 안 좋게도, 특히 `null` 또는 `undefined`와 값을 혼합할 때, 약간의 회귀가 발생했습니다. ```ts interface Lion { @@ -25,33 +25,33 @@ interface Seal { async function visitZoo(lionExhibit: Promise, sealExhibit: Promise) { let [lion, seal] = await Promise.all([lionExhibit, sealExhibit]); - lion.roar(); // uh oh + lion.roar(); // 오 이런 // ~~~~ -// Object is possibly 'undefined'. +// 객체는 아마도 'undefined' 일 것입니다. } ``` -This is strange behavior! -The fact that `sealExhibit` contained an `undefined` somehow poisoned type of `lion` to include `undefined`. +이건 이상한 행동입니다! +`sealExhibit`가 `undefined`를 포함하는 것은 어떻게든 `lion` 타입에 `undefined`를 주입합니다. -Thanks to [a pull request](https://github.com/microsoft/TypeScript/pull/34501) from [Jack Bates](https://github.com/jablko), this has been fixed with improvements in our inference process in TypeScript 3.9. -The above no longer errors. -If you've been stuck on older versions of TypeScript due to issues around `Promise`s, we encourage you to give 3.9 a shot! +[Jack Bates](https://github.com/jablko)의 [풀 리퀘스트](https://github.com/microsoft/TypeScript/pull/34501) 덕분에, TypeScript 3.9의 추론 프로세스가 개선되었습니다. +위 오류는 더 이상 없습니다. +`Promise`들과 관련된 문제로 인해 이전 버전의 TypeScript에서 고생을 했다면, 3.9를 사용하는 것이 좋습니다. -### What About the `awaited` Type? +### `awaited` 타입은 무엇입니까? (What About the `awaited` Type?) -If you've been following our issue tracker and design meeting notes, you might be aware of some work around [a new type operator called `awaited`](https://github.com/microsoft/TypeScript/pull/35998). -This goal of this type operator is to accurately model the way that `Promise` unwrapping works in JavaScript. +이슈 트래커와 설계 회의 노트를 보면, [`awaited`이라는 새로운 연산자](https://github.com/microsoft/TypeScript/pull/35998)에 대한 일부 작업을 알 수도 있습니다. +이 타입 연산자의 목표는 JavaScript에서 `Promise`를 푸는 방식을 정확하게 모델링 하는 것입니다. -We initially anticipated shipping `awaited` in TypeScript 3.9, but as we've run early TypeScript builds with existing codebases, we've realized that the feature needs more design work before we can roll it out to everyone smoothly. -As a result, we've decided to pull the feature out of our main branch until we feel more confident. -We'll be experimenting more with the feature, but we won't be shipping it as part of this release. +처음에는 TypeScript 3.9에서 `awaited`을 제공할 것으로 예상했지만, 기존 코드 베이스와 함께 초기 TypeScript 빌드를 실행함으로써 모든 사용자에게 원활하게 배포하기 전에 이 기능에 더 많은 설계 작업이 필요하다는 사실을 알았습니다. +결과적으로 더 많은 확신이 생기면 주요 브랜치에 기능을 추가하기로 결정했습니다. +이 기능에 대해 더 많은 실험을 할 예정이지만, 이번 릴리스에서는 제공하진 않습니다. -## Speed Improvements +## 속도 향상 (Speed Improvements) -TypeScript 3.9 ships with many new speed improvements. -Our team has been focusing on performance after observing extremely poor editing/compilation speed with packages like material-ui and styled-components. -We've dived deep here, with a series of different pull requests that optimize certain pathological cases involving large unions, intersections, conditional types, and mapped types. +TypeScript 3.9는 많은 새로운 속도 향상 기능이 포함되어 있습니다. +우리 팀은 material-ui 및 스타일 구성 요소와 같은 패키지를 사용하여 편집 / 컴파일 속도가 매우 열악한 것을 확인한 후 성능에 중점을 두었습니다. +거대한 유니언, 인터섹션, 조건별 타입 그리고 매핑된 타입과 관련된 특정 병리학적 사례를 최적화하는 다양한 풀 레퀘스트로 심층 분석했습니다. * https://github.com/microsoft/TypeScript/pull/36576 * https://github.com/microsoft/TypeScript/pull/36590 @@ -60,14 +60,14 @@ We've dived deep here, with a series of different pull requests that optimize ce * https://github.com/microsoft/TypeScript/pull/36754 * https://github.com/microsoft/TypeScript/pull/36696 -Each of these pull requests gains about a 5-10% reduction in compile times on certain codebases. -In total, we believe we've achieved around a 40% reduction in material-ui's compile time! +이러한 각 풀 리퀘스트는 특정 코드 베이스에서 컴파일 시간이 약 5-10% 단축됩니다. +전체적으로 material-ui의 컴파일 시간이 약 40% 단축되었습니다! -We also have some changes to file renaming functionality in editor scenarios. -We heard from the Visual Studio Code team that when renaming a file, just figuring out which import statements needed to be updated could take between 5 to 10 seconds. -TypeScript 3.9 addresses this issue by [changing the internals of how the compiler and language service caches file lookups](https://github.com/microsoft/TypeScript/pull/37055). +또한 에디터 시나리오에서 파일 이름 변경 기능이 일부 변경되었습니다. +Visual Studio Code 팀은 파일 이름을 바꿀 때 어떤 import 문을 업데이트해야 하는지 파악하는데 5초에서 10초가 소요될 수 있다고 들었습니다. +TypeScript 3.9는 [컴파일러 및 언어 서비스가 파일 조회를 캐싱 하는 방식의 내부 변경](https://github.com/microsoft/TypeScript/pull/37055)을 통해 이 문제를 해결합니다. -While there's still room for improvement, we hope this work translates to a snappier experience for everyone! +여전히 개선의 여지가 있지만, 이 작업이 모든 사람들에게 보다 빠른 경험으로 이어지기를 바랍니다! ## `// @ts-expect-error` Comments From 0b88f03891ef9901d0192ecae92beffdd8dc3ff0 Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Fri, 15 May 2020 10:47:42 +0900 Subject: [PATCH 02/12] Update pages/release notes/TypeScript 3.9.md --- pages/release notes/TypeScript 3.9.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 42b720ab..dfa0feaf 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -34,7 +34,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise(arg: T) { In previous TypeScript versions, declarations like `export * from "foo"` would be dropped in our JavaScript output if `foo` didn't export any values. This sort of emit is problematic because it's type-directed and can't be emulated by Babel. TypeScript 3.9 will always emit these `export *` declarations. -In practice, we don't expect this to break much existing code. \ No newline at end of file +In practice, we don't expect this to break much existing code. From c36dc28901bf5fbef5b8083857bcef00bf074c37 Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Fri, 15 May 2020 10:48:34 +0900 Subject: [PATCH 03/12] Update pages/release notes/TypeScript 3.9.md --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index dfa0feaf..6ef5f228 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -60,7 +60,7 @@ TypeScript 3.9는 많은 새로운 속도 향상 기능이 포함되어 있습 * https://github.com/microsoft/TypeScript/pull/36754 * https://github.com/microsoft/TypeScript/pull/36696 -이러한 각 풀 리퀘스트는 특정 코드 베이스에서 컴파일 시간이 약 5-10% 단축됩니다. +이러한 각 pull request는 특정 코드 베이스에서 컴파일 시간이 약 5-10% 단축됩니다. 전체적으로 material-ui의 컴파일 시간이 약 40% 단축되었습니다! 또한 에디터 시나리오에서 파일 이름 변경 기능이 일부 변경되었습니다. From 13d58f8b00a8db67ae5f19bffabcd4cdb36e65df Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Sat, 16 May 2020 00:17:09 +0900 Subject: [PATCH 04/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: seoheePark --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 6ef5f228..b9ac3a4f 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -35,7 +35,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise Date: Sat, 16 May 2020 00:17:25 +0900 Subject: [PATCH 05/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: seoheePark --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index b9ac3a4f..6af9da09 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -36,7 +36,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise Date: Sat, 16 May 2020 00:17:36 +0900 Subject: [PATCH 06/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: seoheePark --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 6af9da09..c8200a57 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -51,7 +51,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise Date: Sat, 16 May 2020 00:17:49 +0900 Subject: [PATCH 07/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: seoheePark --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index c8200a57..b8e841e4 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -45,7 +45,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise 속도 향상 (Speed Improvements) From 3e4c0eb33a41c6125b5393b06124e524615d629b Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Sat, 16 May 2020 00:18:01 +0900 Subject: [PATCH 08/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: seoheePark --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index b8e841e4..a2355d8d 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -50,7 +50,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise 속도 향상 (Speed Improvements) TypeScript 3.9는 많은 새로운 속도 향상 기능이 포함되어 있습니다. -우리 팀은 material-ui 및 스타일 구성 요소와 같은 패키지를 사용하여 편집 / 컴파일 속도가 매우 열악한 것을 확인한 후 성능에 중점을 두었습니다. +우리 팀은 material-ui 및 styled-components와 같은 패키지를 사용할 때 편집 / 컴파일 속도가 매우 열악한 것을 확인한 후 성능에 중점을 두었습니다. 거대한 유니언, 인터섹션, 조건별 타입 그리고 매핑된 타입과 관련된 특정 병리학적 사례를 최적화하는 다양한 pull request로 심층 분석했습니다. * https://github.com/microsoft/TypeScript/pull/36576 From 3b9497605027f3807a4f7cb1055ee68b72ca7104 Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Sun, 17 May 2020 13:40:12 +0900 Subject: [PATCH 09/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: YeonJuan --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index a2355d8d..77ac3971 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -9,7 +9,7 @@ * [Support for "Solution Style" `tsconfig.json` Files](#support-for-solution-style-tsconfigjson-files) * [Breaking Changes](#breaking-changes) -## 추론과 `Promise.all` 개선 (`Improvements in Inference and `Promise.all`) +## 추론과 `Promise.all` 개선 (Improvements in Inference and `Promise.all`) 최신 버전의 TypeScript(약 3.7)는 `Promise.all` 및 `Promise.race`와 같은 함수 선언이 업데이트되었습니다. 운이 안 좋게도, 특히 `null` 또는 `undefined`와 값을 혼합할 때, 약간의 회귀가 발생했습니다. From 9c1b7da907c09fa2ad09c7eb37bc2e2bbc869972 Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Sun, 17 May 2020 13:40:27 +0900 Subject: [PATCH 10/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: YeonJuan --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 77ac3971..db6393d1 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -40,7 +40,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise Date: Sun, 17 May 2020 13:40:42 +0900 Subject: [PATCH 11/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: YeonJuan --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index db6393d1..9abeccb8 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -44,7 +44,7 @@ async function visitZoo(lionExhibit: Promise, sealExhibit: Promise 속도 향상 (Speed Improvements) From 7f11c94c9b7b22cf250d8a4e79e359b6324de94e Mon Sep 17 00:00:00 2001 From: Kibeom Kwon Date: Sun, 17 May 2020 13:41:27 +0900 Subject: [PATCH 12/12] Update pages/release notes/TypeScript 3.9.md Co-authored-by: YeonJuan --- pages/release notes/TypeScript 3.9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/release notes/TypeScript 3.9.md b/pages/release notes/TypeScript 3.9.md index 9abeccb8..48bdde21 100644 --- a/pages/release notes/TypeScript 3.9.md +++ b/pages/release notes/TypeScript 3.9.md @@ -64,7 +64,7 @@ TypeScript 3.9는 많은 새로운 속도 향상 기능이 포함되어 있습 전체적으로 material-ui의 컴파일 시간이 약 40% 단축되었습니다! 또한 에디터 시나리오에서 파일 이름 변경 기능이 일부 변경되었습니다. -Visual Studio Code 팀은 파일 이름을 바꿀 때 어떤 import 문을 업데이트해야 하는지 파악하는데 5초에서 10초가 소요될 수 있다고 들었습니다. +우리는 Visual Studio Code 팀으로부터 파일 이름을 바꿀 때 어떤 import 문을 업데이트해야 하는지 파악하는데 5초에서 10초가 소요될 수 있다고 들었습니다. TypeScript 3.9는 [컴파일러 및 언어 서비스가 파일 조회를 캐싱 하는 방식의 내부 변경](https://github.com/microsoft/TypeScript/pull/37055)을 통해 이 문제를 해결합니다. 여전히 개선의 여지가 있지만, 이 작업이 모든 사람들에게 보다 빠른 경험으로 이어지기를 바랍니다!