From 398c5e9ec95f47bc7d7ab13396df2f52b431c417 Mon Sep 17 00:00:00 2001 From: yahma25 Date: Mon, 1 Mar 2021 20:44:05 +0900 Subject: [PATCH 1/4] Translate 1 file to ko - Union and Intersection Types --- .../Union and Intersection Types.ts | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts diff --git a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts new file mode 100644 index 00000000..e66bfcaa --- /dev/null +++ b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts @@ -0,0 +1,83 @@ +// 유니언 타입은 객체가 하나 이상의 +// 타입이 될 수 있도록 선언하는 방법입니다. + +type StringOrNumber = string | number; +type ProcessStates = "open" | "closed"; +type OddNumbersUnderTen = 1 | 3 | 5 | 7 | 9; +type AMessyUnion = "hello" | 156 | { error: true }; + +// "open"과 "closed"을 문자열과 대비하여 사용하는 것이 새롭게 느껴지신다면, +// 다음을 확인해보세요: example:literals + +// 하나의 유니언에 서로 다른 타입을 혼합할 수 있으며, +// 말하고 싶은 점은 값은 그 타입 중 하나라는 것입니다. + +// TypeScript는 실행 중에 어떤 값이 될 수 있는지 +// 결정하는 방법을 알아낼 것입니다. + +// 예를 들어, 유니언은 가끔 타입을 +// 여러 개 사용함으로써 훼손될 수 있습니다: + +type WindowStates = "open" | "closed" | "minimized" | string; + +// 위에를 호버해보면, WindowStates가 유니언 타입이 아닌 +// string 타입으로 되는 것을 확인할 수 있습니다. +// 이에 대한 내용은 예시:type-widening-and-narrowing에서 다룹니다. + +// 유니언이 OR이면, 교집합은 AND입니다. +// 교집합 타입은 새로운 타입을 생성하기 위해 두 개의 타입이 교차하는 경우입니다. +// 이를 통해 타입 구성이 가능합니다. + +interface ErrorHandling { + success: boolean; + error?: { message: string }; +} + +interface ArtworksData { + artworks: { title: string }[]; +} + +interface ArtistsData { + artists: { name: string }[]; +} + +// 이런 인터페이스는 일관된 오류 핸들링과 +// 자체 데이터 모두를 갖는 응답으로 구성할 수 있습니다. + +type ArtworksResponse = ArtworksData & ErrorHandling; +type ArtistsResponse = ArtistsData & ErrorHandling; + +// For example: +// 예를 들어: + +const handleArtistsResponse = (response: ArtistsResponse) => { + if (response.error) { + console.error(response.error.message); + return; + } + + console.log(response.artists); +}; + +// 교집합과 유니언이 혼합된 타입은 +// 객체가 두 개의 값 중 하나를 포함해야 할 때 +// 정말 유용합니다: + +interface CreateArtistBioBase { + artistID: string; + thirdParty?: boolean; +} + +type CreateArtistBioRequest = CreateArtistBioBase & ({ html: string } | { markdown: string }); + +// 이제 artistID와 html 또는 markdown 둘 중 하나를 +// 포함할 때만 요청을 생성할 수 있습니다 + +const workingRequest: CreateArtistBioRequest = { + artistID: "banksy", + markdown: "Banksy is an anonymous England-based graffiti artist...", +}; + +const badRequest: CreateArtistBioRequest = { + artistID: "banksy", +}; From 460c2b2f6f876be9b18d5905cfcd26f7f0f4d97c Mon Sep 17 00:00:00 2001 From: yahma25 Date: Mon, 1 Mar 2021 20:49:33 +0900 Subject: [PATCH 2/4] Remove en sentence --- .../ko/TypeScript/Primitives/Union and Intersection Types.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts index e66bfcaa..a30378bf 100644 --- a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts +++ b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts @@ -47,7 +47,6 @@ interface ArtistsData { type ArtworksResponse = ArtworksData & ErrorHandling; type ArtistsResponse = ArtistsData & ErrorHandling; -// For example: // 예를 들어: const handleArtistsResponse = (response: ArtistsResponse) => { From 6b212727cf37ee32ebb6ecbe7e01377e51ed4d38 Mon Sep 17 00:00:00 2001 From: MyoungHo Kim <34343507+yahma25@users.noreply.github.com> Date: Sun, 21 Mar 2021 07:57:05 +0900 Subject: [PATCH 3/4] Update docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts Co-authored-by: Kibeom Kwon --- .../ko/TypeScript/Primitives/Union and Intersection Types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts index a30378bf..2d42fa5d 100644 --- a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts +++ b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts @@ -10,7 +10,7 @@ type AMessyUnion = "hello" | 156 | { error: true }; // 다음을 확인해보세요: example:literals // 하나의 유니언에 서로 다른 타입을 혼합할 수 있으며, -// 말하고 싶은 점은 값은 그 타입 중 하나라는 것입니다. +// 여기서 중요한 점은 값은 그 타입 중 하나라는 것입니다. // TypeScript는 실행 중에 어떤 값이 될 수 있는지 // 결정하는 방법을 알아낼 것입니다. From 86254b775b821a0778fa1524c9a088b896f55b1d Mon Sep 17 00:00:00 2001 From: yahma25 Date: Sun, 21 Mar 2021 07:58:14 +0900 Subject: [PATCH 4/4] Fix to understand easier --- .../ko/TypeScript/Primitives/Union and Intersection Types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts index a30378bf..911d4a6c 100644 --- a/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts +++ b/docs/playground/ko/TypeScript/Primitives/Union and Intersection Types.ts @@ -16,7 +16,7 @@ type AMessyUnion = "hello" | 156 | { error: true }; // 결정하는 방법을 알아낼 것입니다. // 예를 들어, 유니언은 가끔 타입을 -// 여러 개 사용함으로써 훼손될 수 있습니다: +// 여러 개 사용함으로써 기존 의도와 달라질 수 있습니다: type WindowStates = "open" | "closed" | "minimized" | string;