Skip to content

Commit c25822d

Browse files
committed
Translate 1 file to ko - Understanding Errors
1 parent 7313a8e commit c25822d

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: Understanding Errors
3+
layout: docs
4+
permalink: /ko/docs/handbook/2/understanding-errors.html
5+
oneline: "타입스크립트에서 오류들을 읽는법."
6+
---
7+
8+
# 오류들을 이해하기
9+
10+
타입스크립트가 오류를 찾으면, 무엇이 잘못됐는지 가능한 자세하게 설명하려고 할 것입니다.
11+
타입스크립트의 타입 시스템은 구조적이기 때문에, 이것은 종종 문제를 발견한 장소에 대한 다소 긴 설명을 제공한다는 것을 의미합니다.
12+
13+
## 용어
14+
15+
오류 메시지에서 자주 볼 수 있는 몇 가지 용어가 있어 이해하는 데 도움이 됩니다.
16+
17+
#### _할당할 수 있는_ (_assignable to_)
18+
19+
타입스크립트는 _할당할 수 있는_ 다른 형식(하나의 형식을 대체할 수 있는 경우)을 고려합니다.
20+
다시 말해 `고양이``동물`을 대신할 수 있는 존재이기 때문에 `동물`에게 _할당할 수 있는_ 존재입니다.
21+
22+
이 관계는 이름에서 알 수 있듯이, `t``s`의 유형을 조사하여 할당 `t = s;`의 타당성을 확인하는 데 사용됩니다.
23+
또한 두 가지 유형이 상호 작용하는 대부분의 다른 위치를 확인하는 데도 사용됩니다.
24+
예를 들어, 함수를 호출할 때 각 인수의 유형은 매개 변수의 선언된 유형에 _할당할 수_ 있어야합니다.
25+
26+
비공식적으로 `T는 S에 할당할 수 없습니다`라고 하면 타입스크립트는 "_`T``S`는 호환되지 않는다"_.고 말한다고 생각하면됩니다.
27+
그러나, 이것은 _방향성이 있는_ 관계라는 점에 유의하십시오: `S``T`에 할당될 수 있다고 해서 `T``S`에 할당될 수 있는 것은 아닙니다.
28+
29+
## 예시들 (Examples)
30+
31+
오류 메시지의 몇 가지 예제를 살펴보고 어떤 일이 일어나고 있는지 알아보겠습니다.
32+
33+
### 오류 정교화
34+
35+
각 오류는 선행 메시지로 시작하고 때로는 더 많은 하위 메시지로 이어집니다.
36+
각 하위 메시지는 위의 메시지에 대한 "왜?" 질문에 대답하는 것으로 생각할 수 있습니다.
37+
몇 가지 예를 통해 실제로 어떻게 작동하는지 살펴보겠습니다.
38+
39+
다음은 예제 자체보다 긴 오류 메시지를 생성하는 예입니다:
40+
41+
```ts twoslash
42+
// @errors: 2322
43+
let a: { m: number[] };
44+
let b = { m: [""] };
45+
a = b;
46+
```
47+
48+
마지막 줄을 확인하는 동안 타입스크립트에서 오류가 발생했습니다.
49+
오류 발생에 대한 논리는 할당이 정상인지 확인하는 논리에서 비롯됩니다:
50+
51+
1. `b` 타입은 `a` 타입에 할당 가능한가요? 아뇨. 왜요?
52+
2. 왜냐하면 `m` 속성의 유형이 호환되지 않기 때문입니다. 왜죠?
53+
3. 왜냐하면 `b``m` 속성(`string[]`)은 `a``m` 속성(`number[]`)에 할당할 수 없기 때문입니다. 왜죠?
54+
4. 한 배열의 요소 유형(`string`)을 다른 배열(`number`)에 할당할 수 없기 때문입니다.
55+
56+
### 추가 속성 (Extra Properties)
57+
58+
```ts twoslash
59+
// @errors: 2322
60+
type A = { m: number };
61+
const a: A = { m: 10, n: "" };
62+
```
63+
64+
### 유니언 할당 (Union Assignments)
65+
66+
```ts twoslash
67+
// @errors: 2322
68+
type Thing = "none" | { name: string };
69+
70+
const a: Thing = { name: 0 };
71+
```

0 commit comments

Comments
 (0)