Skip to content

Commit ab33f64

Browse files
committed
1차 수정
1 parent a633b45 commit ab33f64

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

Diff for: pages/release-notes/typescript-4.0.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ permalink: /docs/handbook/release-notes/typescript-4-0.html
55
oneline: TypeScript 4.0 Release Notes
66
---
77

8-
## 가변 인자 튜플 유형 (Variadic Tuple Types)
8+
## 가변 인자 튜플 타입 (Variadic Tuple Types)
99

10-
두 개의 배열 혹은 튜플 타입을 연결하여 새로운 배열을 만드는 JavaScript의 `concat` 함수에 대해서 생각해봅시다.
10+
배열이나 튜플 타입 두 개를 결합하여 새로운 배열을 만드는 JavaScript의 `concat` 함수에 대해서 생각해봅시다.
1111

1212
```js
1313
function concat(arr1, arr2) {
1414
return [...arr1, ...arr2];
1515
}
1616
```
1717

18-
또한, 배열이나 튜플을 변수로 입력받아 첫 번째 원소를 제외한 모든 원소를 반환해주는 `tail` 함수에 대해서도 생각해봅시다.
18+
그리고, 배열이나 튜플을 변수로 입력받아 첫 번째 원소를 제외한 나머지를 반환하는 `tail` 함수에 대해서도 생각해봅시다.
1919

2020
```js
2121
function tail(arg) {
@@ -38,7 +38,7 @@ function concat<A, B, C, D, E>(arr1: [A, B, C, D, E], arr2: []): [A, B, C, D, E]
3838
function concat<A, B, C, D, E, F>(arr1: [A, B, C, D, E, F], arr2: []): [A, B, C, D, E, F];)
3939
```
4040

41-
음... 네, 두 번째의 배열이 항상 비어있는 경우 작성된 7개의 오버로드들입니다.
41+
음... 네, 이 오버로드들의 두 번째 배열은 전부 비어있습니다.
4242
이때, `arr2`가 하나의 인자를 가지고 있는 경우를 추가해봅시다.
4343

4444
<!-- prettier-ignore -->
@@ -52,23 +52,23 @@ function concat<A1, B1, C1, D1, E1, A2>(arr1: [A1, B1, C1, D1, E1], arr2: [A2]):
5252
function concat<A1, B1, C1, D1, E1, F1, A2>(arr1: [A1, B1, C1, D1, E1, F1], arr2: [A2]): [A1, B1, C1, D1, E1, F1, A2];
5353
```
5454

55-
이것이 지나치다는 것이 분명해지기를 바랍니다.
56-
안타깝게도, `tail`과 같은 함수를 타이핑할 이와 같은 비슷한 종류의 문제에 직면하게 될 것입니다.
55+
이런 오버로딩 함수들은 분명 비합리적입니다.
56+
안타깝게도, `tail` 함수를 타이핑할 때도 이와 비슷한 문제에 직면하게 됩니다.
5757

58-
이것은 "천 개의 오버로드로 인한 죽음(death by a thousand overloads)"이라고 부르고 싶은 또다른 경우이며, 일반적으로 문제를 해결하지도 않습니다.
58+
이것은 "천 개의 오버로드로 인한 죽음(death by a thousand overloads)"의 하나의 경우이며, 심지어 대부분 문제를 해결하지도 못합니다.
5959
우리가 작성하고자하는만큼의 오버로드에 한해서만 올바른 타입을 제공합니다.
6060
포괄적인 케이스를 만들고 싶다면, 다음과 같은 오버로드가 필요합니다.
6161

6262
```ts
6363
function concat<T, U>(arr1: T[], arr2: U[]): Array<T | U>;
6464
```
6565

66-
그러나 해당 시그니처는 튜플을 사용할 때 입력의 길이나 요소의 순서에 대한 어떤 것도 인코딩하지 않습니다.
66+
그러나 시그니처는 튜플을 사용할 때 입력 길이나 요소 순서에 대한 어떤 것도 처리하지 않습니다.
6767

68-
TypeScript 4.0은 추론 개선과 함께 두 가지 핵심적인 변화를 가져와 이러한 타이핑을 가능하게 합니다.
68+
TypeScript 4.0은 타입 추론 개선을 포함한 두 가지 핵심적인 변화를 도입해 이러한 타이핑을 가능하도록 만들었습니다.
6969

7070
첫 번째 변화는 튜플 타입 구문의 확장 연산자에서 제너릭 타입을 사용할 수 있다는 점입니다.
71-
이 것은 우리가 작동하는 실제 타입을 모르더라도 튜플과 배열에 대해 고차함수를 표현할 수 있다는 뜻입니다.
71+
우리가 작동하는 실제 타입을 모르더라도 튜플과 배열에 대한 고차함수를 표현할 수 있다는 뜻입니다.
7272
이러한 튜플 타입에서 제너릭 확장 연산자가 인스턴스화(혹은, 실제 타입으로 대체)되면 또다른 배열이나 튜플 타입 세트를 생산할 수 있습니다.
7373

7474
예를 들어, `tail` 같은 함수를 "천 개의 오버로드로 인한 죽음(death by a thousand overloads)"이슈 없이 타이핑 할 수 있게 됩니다.

0 commit comments

Comments
 (0)