Skip to content

Commit ce409ae

Browse files
Merge pull request #50 from yahma25/Translation-to-ko-playground-Nullable-Types
Translate 1 file to ko - Nullable Types
2 parents 0e45926 + 45c7014 commit ce409ae

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
//// { order: 3, compiler: { strictNullChecks: false } }
2+
3+
// JavaScript는 존재하지 않는 값을 선언하는 두 가지 방법을 갖고 있으며,
4+
// TypeScript는 어떤 대상을 선택적 또는 null 허용으로 선언하기 위해
5+
// 더 많은 방법도 가능하게 하는 추가 구문을 추가합니다.
6+
7+
// 먼저, 두 가지 JavaScript 기본형의
8+
// 차이점입니다: undefined와 null
9+
10+
// undefined는 어떤 대상을 찾지 못했거나 설정되지 않은 경우입니다
11+
12+
const emptyObj = {};
13+
const anUndefinedProperty: undefined = emptyObj["anything"];
14+
15+
// null은 의도적으로
16+
// 값이 없다고 할 때 사용합니다.
17+
18+
const searchResults = {
19+
video: { name: "LEGO Movie" },
20+
text: null,
21+
audio: { name: "LEGO Movie Soundtrack" },
22+
};
23+
24+
// 왜 undefined를 사용하지 않을까요?
25+
// 주로, text가 올바르게 포함됐는지 확인할 수 있기 때문입니다.
26+
// text를 undefined로 반환하면
27+
// 결과는 존재하지 않았던 것과 동일합니다.
28+
29+
// 약간 표면적으로 느껴질 수 있지만,
30+
// JSON 문자열로 변환했을 때 text가 undefined라면,
31+
// 다른 문자열과 동등하게 포함되지 않을 수 있습니다.
32+
33+
// 엄격한 Null 타입
34+
35+
// TypeScript 2.0 이전에는 undefined와 null이 타입 시스템에서 사실상 무시됐었습니다.
36+
// 엄격한 Null 타입은 TypeScript가 타입화 되지 않은
37+
// JavaScript에 더 가까운 코딩 환경을 제공해줍니다.
38+
39+
// 2.0 버전은 "strictNullChecks"라고 불리는 컴파일러 플래그를 추가했고
40+
// 이 플래그는 사람들이 undefined와 null을
41+
// 코드 흐름 분석을 통해 다뤄줘야 하는 타입으로 취급하도록 요구했습니다.
42+
// ( 예시:code-flow에서 더 살펴볼 수 있습니다 )
43+
44+
// TypeScript에 정적 null 검사가 동작하는 차이점의 예시는,
45+
// 아래 "Potential String"를 호버해보세요:
46+
47+
type PotentialString = string | undefined | null;
48+
49+
// PotentialString은 undefined와 null을 버립니다.
50+
// 설정으로 올라가서 strict 모드를 동작시키고 돌아온 뒤,
51+
// PotentialString 위에 호버하면
52+
// 이제 전체 유니언이 표시되는 것을 볼 수 있습니다.
53+
54+
declare function getID(): PotentialString;
55+
56+
const userID = getID();
57+
console.log("User Logged in: ", userID.toUpperCase());
58+
59+
// strict 모드에서만 위 코드는 실패합니다 ^
60+
61+
// 타입 단언 또는 null이 아닌 단언 연산자(!)와 같은 것을 이용하여
62+
// TypeScript에 여러분이 더 많이 알고 있다고 알려주는 방법이 있습니다
63+
64+
const definitelyString1 = getID() as string;
65+
const definitelyString2 = getID()!;
66+
67+
// 또는 if를 사용하여 존재 여부를 안전하게 검사할 수 있습니다:
68+
69+
if (userID) {
70+
console.log(userID);
71+
}
72+
73+
// 선택적 프로퍼티
74+
75+
// Void
76+
77+
// Void는 값을 반환하지 않는
78+
// 함수의 반환 타입입니다.
79+
80+
const voidFunction = () => {};
81+
const resultOfVoidFunction = voidFunction();
82+
83+
// 이건 보통 실수이며,
84+
// TypeScript는 컴파일러 오류를 얻도록 void 타입을 유지합니다
85+
// - 런타임 중에 정의되지 않더라도 해당됩니다.

0 commit comments

Comments
 (0)