Skip to content

Commit

Permalink
Merge pull request #49 from yahma25/Translation-to-ko-playground-Tuples
Browse files Browse the repository at this point in the history
Translate 1 file to ko - Tuples
  • Loading branch information
github-actions[bot] authored Mar 29, 2021
2 parents e7669e5 + 03aca4d commit be486dc
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions docs/playground/ko/TypeScript/Type Primitives/Tuples.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// 일반적으로 배열은 0부터 여러 개의
// 단일 타입 객체를 포함할 수 있습니다.
// TypeScript는 다양한 타입을 포함하고,
// 색인 되는 순서가 중요한 배열을 특별하게 분석할 수 있습니다.

// 이를 튜플이라고 부릅니다. 튜플을 일부 데이터에 연결하기 위한
// 방법으로 생각할 수 있지만, 키로 구성되는 객체보다 구문을 덜 가집니다.

// JavaScript의 배열 구문을 사용하여 튜플을 생성할 수 있습니다:

const failingResponse = ["Not Found", 404];

// 또한 튜플에 타입 선언이 필요할 수 있습니다.

const passingResponse: [string, number] = ["{}", 200];

// 두 변수 이름에 호버해보면
// 배열 ( (string | number)[] )과 튜플 ( [string, number] )의
// 차이점을 볼 수 있습니다.

// 배열의 순서가 중요하지 않을 때,
// 모든 인덱스에 있는 요소는 문자열 또는 숫자가 될 수 있습니다.
// 하지만 튜플에서는 순서와 길이가 보장됩니다.

if (passingResponse[1] === 200) {
const localInfo = JSON.parse(passingResponse[0]);
console.log(localInfo);
}

// 이는 TypeScript가 올바른 인덱스에 올바른 타입을 제공하고,
// 선언되지 않은 인덱스에 있는 객체에 접근하면
// 에러가 발생한다는 것을 의미합니다.

passingResponse[2];

// 튜플은 적은 양의 연결된 데이터
// 또는 고정된 데이터 타입을 위한 좋은 패턴처럼 느껴질 수 있습니다.

type StaffAccount = [number, string, string, string?];

const staff: StaffAccount[] = [
[0, "Adankwo", "adankwo.e@"],
[1, "Kanokwan", "kanokwan.s@"],
[2, "Aneurin", "aneurin.s@", "Supervisor"],
];

// 튜플에서 시작 타입은 알지만,
// 길이에 대해 알 수 없을 때
// 전개 연산자를 사용해 길이에 상관없이
// 나머지를 특정한 타입으로 나타낼 수 있습니다:

type PayStubs = [StaffAccount, ...number[]];

const payStubs: PayStubs[] = [
[staff[0], 250],
[staff[1], 250, 260],
[staff[0], 300, 300, 300],
];

const monthOnePayments = payStubs[0][1] + payStubs[1][1] + payStubs[2][1];
const monthTwoPayments = payStubs[1][2] + payStubs[2][2];
const monthThreePayments = payStubs[2][2];

// 튜플을 사용하면 개수를 알 수 없는
// 매개변수 타입을 선언할 수 있습니다:

declare function calculatePayForEmployee(id: number, ...args: [...number[]]): number;

calculatePayForEmployee(staff[0][0], payStubs[0][1]);
calculatePayForEmployee(staff[1][0], payStubs[1][1], payStubs[1][2]);

//
// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html#tuples-in-rest-parameters-and-spread-expressions
// https://auth0.com/blog/typescript-3-exploring-tuples-the-unknown-type/

0 comments on commit be486dc

Please sign in to comment.