Skip to content

Commit

Permalink
fix Italic
Browse files Browse the repository at this point in the history
  • Loading branch information
Joy1590 committed Oct 4, 2022
1 parent f234d09 commit 840594a
Show file tree
Hide file tree
Showing 19 changed files with 149 additions and 149 deletions.
48 changes: 24 additions & 24 deletions docs/documentation/ko/declaration-files/By Example.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ oneline: "How to create a d.ts file for a module"

## 프로퍼티를 갖는 객체 (Objects with Properties)

_문서_
*문서*

> 전역 변수 `myLib`에는 인사말을 만드는 함수 `makeGreeting`와,
> 지금까지 생성한 인사말의 수를 가리키는 `numberOfGreetings` 프로퍼티가 있습니다.
_코드_
*코드*

```ts
let result = myLib.makeGreeting("hello, world");
Expand All @@ -40,7 +40,7 @@ console.log("The computed greeting is:" + result);
let count = myLib.numberOfGreetings;
```

_선언_
*선언*

점 표기법으로 접근하는 타입이나 값을 설명하기 위해 `declare namespace`를 사용하세요.

Expand All @@ -53,19 +53,19 @@ declare namespace myLib {

## 오버로드된 함수 (Overloaded Functions)

_문서_
*문서*

`getWidget` 함수는 숫자를 인자로 받아 Widget을 반환하거나, 문자열을 인자로 받아 Widget 배열을 반환합니다.

_코드_
*코드*

```ts
let x: Widget = getWidget(43);

let arr: Widget[] = getWidget("all of them");
```

_선언_
*선언*

```ts
declare function getWidget(n: number): Widget;
Expand All @@ -74,7 +74,7 @@ declare function getWidget(s: string): Widget[];

## 재사용 가능한 타입 (인터페이스) (Reusable Types (Interfaces))

_문서_
*문서*

> greeting을 명시할 때, 반드시 `GreetingSettings` 객체를 전달해야 합니다.
> 이 객체는 다음의 프로퍼티를 갖고 있습니다:
Expand All @@ -85,7 +85,7 @@ _문서_
>
> 3 - color: 선택적 문자열, 예. '#ff00ff'
_코드_
*코드*

```ts
greet({
Expand All @@ -94,7 +94,7 @@ greet({
});
```

_선언_
*선언*

프로퍼티를 갖는 타입을 정의하기 위해 `interface`를 사용하세요.

Expand All @@ -110,11 +110,11 @@ declare function greet(setting: GreetingSettings): void;

## 재사용 가능한 타입 (타입 별칭) (Reusable Types (Type Aliases))

_문서_
*문서*

> 인사말이 예상되는 어느 곳에나, `string`, `string`을 반환하는 함수, 또는 `Greeter` 인스턴스를 전달할 수 있습니다.
_코드_
*코드*

```ts
function getGreeting() {
Expand All @@ -127,7 +127,7 @@ greet(getGreeting);
greet(new MyGreeter());
```

_선언_
*선언*

타입에 대한 약칭으로 타입 별칭을 사용할 수 있습니다:

Expand All @@ -139,20 +139,20 @@ declare function greet(g: GreetingLike): void;

## 타입 구조화하기 (Organizing Types)

_문서_
*문서*

> `greeter` 객체는 파일에 로그를 작성하거나 경고 창을 띄울 수 있습니다.
> 로그 옵션을 `.log(...)` 내부에, 경고 창 옵션을 `.alert(...)` 내부에 전달할 수 있습니다.
_코드_
*코드*

```ts
const g = new Greeter("Hello");
g.log({ verbose: true });
g.alert({ modal: false, title: "Current Greeting" });
```

_선언_
*선언*

타입을 구조화하기 위해 네임스페이스를 사용하세요.

Expand Down Expand Up @@ -187,11 +187,11 @@ declare namespace GreetingLib.Options {

## 클래스 (Classes)

_문서_
*문서*

> `Greeter` 객체를 인스턴스화해서 greeter를 생성하거나, 이 객체를 상속해서 커스텀 greeter를 생성할 수 있습니다.
_코드_
*코드*

```ts
const myGreeter = new Greeter("hello, world");
Expand All @@ -205,7 +205,7 @@ class SpecialGreeter extends Greeter {
}
```

_선언_
*선언*

클래스 혹은 클래스-같은 객체를 설명하기 위해 `declare class`를 사용하세요.
클래스는 생성자 뿐만 아니라 프로퍼티와 메서드를 가질 수 있습니다.
Expand All @@ -221,17 +221,17 @@ declare class Greeter {

## 전역 변수 (Global Variables)

_문서_
*문서*

> 전역 변수 `foo`는 존재하는 위젯의 수를 포함합니다.
_코드_
*코드*

```ts
console.log("Half the number of widgets is " + (foo / 2));
```

_선언_
*선언*

변수를 선언하기 위해 `declare var`를 사용하세요.
만약 변수가 읽기-전용이라면, `declare const`를 사용하세요.
Expand All @@ -244,17 +244,17 @@ declare var foo: number;

## 전역 함수 (Global Functions)

_문서_
*문서*

> 사용자에게 인사말을 보여주기 위해 `greet` 함수를 호출할 수 있습니다.
_코드_
*코드*

```ts
greet("hello, world");
```

_선언_
*선언*

함수를 선언하기 위해 `declare function`을 사용하세요.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ type Size = [number, number];
let x: Size = [101.1, 999.9];
```

`newtype`과 가장 유사한 것은 _태그된 교차 타입(tagged intersection)_ 입니다:
`newtype`과 가장 유사한 것은 *태그된 교차 타입(tagged intersection)* 입니다:

```ts
type FString = string & { __compileTimeOnly: any };
Expand Down Expand Up @@ -462,7 +462,7 @@ TypeScript는 일반적으로 인자 타입에 기반하여 호출로부터 타
왜냐하면 TypeScript는 구조적이기 때문에, 이름 기반의 시스템만큼 타입 매개 변수를 필요로
하지 않습니다. 특히 함수를 다형성으로 만들
필요는 없습니다. 타입 매개변수는 매개변수를 같은 타입으로
제한하는 것처럼 타입 정보를 _전파하는데만_
제한하는 것처럼 타입 정보를 *전파하는데만*
쓰여야 합니다:

```ts
Expand Down Expand Up @@ -534,7 +534,7 @@ function g() { }
## `readonly``const` (`readonly` and `const`)

JavaScript에서, 수정 가능함이 기본이지만,
_참조_가 수정 불가능함을 선언하기 위해 `const`로 변수를 선언할 수 있습니다.
*참조* 수정 불가능함을 선언하기 위해 `const`로 변수를 선언할 수 있습니다.
참조 대상은 여전히 수정 가능합니다:

```js
Expand Down
4 changes: 2 additions & 2 deletions docs/documentation/ko/get-started/TS for JS Programmers.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ JavaScript에서 사용할 수 있는 적은 종류의 원시 타입이 이미
type MyBool = true | false;
```

_참고:_ `MyBool`위에 마우스를 올린다면, `boolean`으로 분류된 것을 볼 수 있습니다 - 구조적 타입 시스템의 프로퍼티며, 나중에 살펴보겠습니다.
*참고:* `MyBool`위에 마우스를 올린다면, `boolean`으로 분류된 것을 볼 수 있습니다 - 구조적 타입 시스템의 프로퍼티며, 나중에 살펴보겠습니다.

유니언 타입이 가장 많이 사용된 사례 중 하나는 값이 다음과 같이 허용되는 `string` 또는 `number`[리터럴](/docs/handbook/literal-types.html)집합을 설명하는 것입니다:

Expand Down Expand Up @@ -214,7 +214,7 @@ backpack.add(23);

## 구조적 타입 시스템 (Structural Type System)

TypeScript의 핵심 원칙 중 하나는 타입 검사가 값이 있는 _형태_에 집중한다는 것입니다.
TypeScript의 핵심 원칙 중 하나는 타입 검사가 값이 있는 *형태* 집중한다는 것입니다.
이는 때때로 "덕 타이핑(duck typing)" 또는 "구조적 타이핑" 이라고 불립니다.

구조적 타입 시스템에서 두 객체가 같은 형태를 가지면 같은 것으로 간주됩니다.
Expand Down
28 changes: 14 additions & 14 deletions docs/documentation/ko/get-started/TS for OOPers.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ TypeScript는 이러한 개발자에게 친숙한 기능을 많이 제공하지
만약 JavaScript에 이미 익숙하지만 주로 Java또는 C#을 사용하는 프로그래머라면, 이 소개 페이지는 흔히 접할 수 있는 오해와 함정에 대한 설명에 도움을 줄 수 있습니다.
TypeScript 모델이 유형화하는 방법 중 일부는 Java나 C#과 상당히 다르며, TypeScript를 학습하는 데에 있어 이 부분을 염두에 두는 것이 중요합니다.

만약 JavaScript를 처음 접하는 Java나 C# 프로그래머라면, JavaScript의 런타임 동작을 이해하기 위해 우선적으로 타입을 _제외한_ JavaScript의 일부분을 배우는 것이 좋습니다.
TypeScript는 코드를 _실행하는_ 방식을 바꾸지 않기 때문에, 실제로 무언가 동작하는 코드를 작성하기 위해서는 여전히 JavaScript가 어떻게 작동하는지 배워야 합니다!
만약 JavaScript를 처음 접하는 Java나 C# 프로그래머라면, JavaScript의 런타임 동작을 이해하기 위해 우선적으로 타입을 *제외한* JavaScript의 일부분을 배우는 것이 좋습니다.
TypeScript는 코드를 *실행하는* 방식을 바꾸지 않기 때문에, 실제로 무언가 동작하는 코드를 작성하기 위해서는 여전히 JavaScript가 어떻게 작동하는지 배워야 합니다!

TypeScript가 JavaScript와 동일한 *런타임*을 사용하므로, 특정한 런타임 동작(문자열을 숫자로 변환하기, 경고 표시, 디스크에 파일 쓰기 등)을 구현하려는 리소스는 항상 TypeScript 프로그램에 똑같이 잘 적용된다는 점을 기억하는 것은 매우 중요합니다.
TypeScript에 특정된 리소스에만 제한을 두지 마십시오!

## 클래스 다시 생각하기 (Rethinking the Class)

C#과 Java는 _의무적 OOP_ 언어라고 부릅니다.
이러한 언어에서 *클래스*는 코드 구성의 기본 단위일 뿐만 아니라 런타임 시 모든 데이터 _그리고_ 동작의 기본적인 컨테이너입니다.
C#과 Java는 *의무적 OOP* 언어라고 부릅니다.
이러한 언어에서 *클래스*는 코드 구성의 기본 단위일 뿐만 아니라 런타임 시 모든 데이터 *그리고* 동작의 기본적인 컨테이너입니다.
기능과 데이터를 전부 클래스에 담도록 강제하는 것은 일부 문제에 대해선 좋은 도메인 모델이 될 수 있지만, 모든 도메인이 이러한 방식으로 표현될 *필요*는 없습니다.

### 자유로운 함수와 데이터 (Free Functions and Data)
Expand Down Expand Up @@ -66,7 +66,7 @@ C#과 Java에서 주어진 값과 객체는 ‘null’, 원시 타입, 또는
C# 또는 Java에서 런타임 타입과 해당 컴파일 타임 선언 사이의 일대일 대응관계는 중요합니다.

TypeScript에서 타입은 공통의 무언가를 공유하는 *값의 집합*으로 생각하는 것이 좋습니다.
타입은 집합에 불과하기 때문에, 특정한 값은 동시에 _수많은_ 집합에 속할 수 있습니다.
타입은 집합에 불과하기 때문에, 특정한 값은 동시에 *수많은* 집합에 속할 수 있습니다.

일단 타입을 집합으로 생각하기 시작하면, 특정 연산이 매우 자연스러워집니다.
예를 들어, C#에서는 ‘string’과 ‘int’ *둘 다 가능한* 타입이 존재하지 않기 때문에 이 값을 인자로 전달하는 것은 이상합니다.
Expand All @@ -79,7 +79,7 @@ TypeScript는 집합론에 의거해 타입을 이용하는 여러 방법을 제

### 삭제된 구조적 타입 (Erased Structural Types)

TypeScript에서, 객체는 정확히 단일 타입이 _아닙니다_.
TypeScript에서, 객체는 정확히 단일 타입이 *아닙니다*.
예를 들어 인터페이스를 만족하는 객체를 생성할 때, 둘 사이의 선언적인 관계가 없더라도 해당 인터페이스가 예상되는 곳에 해당 객체를 사용할 수 있습니다.

```
Expand Down Expand Up @@ -109,21 +109,21 @@ printPoint(obj);
printName(obj);
```

TypeScript의 타입 시스템은 명목이 아닌 _구조적_입니다: `obj`는 숫자인 `x``y` 프로퍼티를 가지고 있으므로, `Pointlike`로써 사용될 수 있습니다.
TypeScript의 타입 시스템은 명목이 아닌 *구조적*입니다: `obj`는 숫자인 `x``y` 프로퍼티를 가지고 있으므로, `Pointlike`로써 사용될 수 있습니다.
타입 간의 관계는 특정 관계로 선언되었는지가 아닌, 포함된 프로퍼티에 의해 결정됩니다.

TypeScript의 타입 시스템은 또한 _구체화되지 않았습니다_: 런타임에 `obj``Pointlike`임을 알려주지 않습니다.
사실, `Pointlike` 타입은 런타임에 _어떤 형태로도_ 존재하지 않습니다.
TypeScript의 타입 시스템은 또한 *구체화되지 않았습니다*: 런타임에 `obj``Pointlike`임을 알려주지 않습니다.
사실, `Pointlike` 타입은 런타임에 *어떤 형태로도* 존재하지 않습니다.

_집합으로서의 타입_ 개념으로 보면, `obj``Pointlike` 값 집합이나 `Named` 값 집합의 멤버로 간주할 수 있습니다.
*집합으로서의 타입* 개념으로 보면, `obj``Pointlike` 값 집합이나 `Named` 값 집합의 멤버로 간주할 수 있습니다.

### 구조적 타입화의 결과 (Consequences of Structural Typing)

객체지향 프로그래머는 종종 구조적 타입화의 두 가지 측면에 놀라곤 합니다.

#### 빈 타입 (Empty Types)

첫 번째로 _빈 타입_은 예상을 무시하는 것처럼 보입니다:
첫 번째로 *빈 타입* 예상을 무시하는 것처럼 보입니다:

```
class Empty {}
Expand All @@ -138,11 +138,11 @@ fn({ k: 10 });

TypeScript는 주어진 인수가 유효한 `Empty`인지 확인하여 `fn`의 호출이 유효한지를 검사합니다
`{ k: 10 }``class Empty { }`_구조를 확인하여 유효성을 검사합니다.
`Empty`에 프로퍼티가 없으므로 `Empty`가 수행하는 _모든_ 프로퍼티가 `{ k: 10 }`에 속해있습니다.
`Empty`에 프로퍼티가 없으므로 `Empty`가 수행하는 *모든* 프로퍼티가 `{ k: 10 }`에 속해있습니다.
그러므로, 유효한 호출입니다:

놀랍지만, 최종적으로 명목적인 객체지향프로그래밍 언어와 매우 비슷하게 사용됩니다.
파생 클래스와 파생 클래스의 기본 사이의 자연스러운 하위 타입 관계가 파괴되기 때문에, 하위 클래스는 _삭제_할 수 없습니다.
파생 클래스와 파생 클래스의 기본 사이의 자연스러운 하위 타입 관계가 파괴되기 때문에, 하위 클래스는 *삭제* 수 없습니다.
구조적 타입 시스템은 호환 가능한 유형의 속성을 갖는 측면에서 하위 타입을 설명하므로 위의 관계를 암시적으로 구별합니다

#### 동일한 타입 (Identical Types)
Expand All @@ -165,7 +165,7 @@ class Golfer {
let w: Car = new Golfer();
```

다시 말하지만, 오류가 아닌 이유는 클래스의 _구조_가 동일하기 때문입니다.
다시 말하지만, 오류가 아닌 이유는 클래스의 *구조* 동일하기 때문입니다.
잠재적인 혼란의 이유가 될 수도 있겠지만, 사실 상관없는 클래스가 동일한 경우는 일반적이지 않습니다.

차후에 클래스 챕터에서 클래스가 서로 어떻게 관련되는지에 대해 자세히 알아볼 것입니다.
Expand Down
Loading

0 comments on commit 840594a

Please sign in to comment.