Share
Sign In
📄

Object type

앞서 여러가지 타입에 대해 알아보았다면 이번엔 객체 타입에 대해 심도있게 들여다 볼 것이다.
객체
객체는 프로퍼티를 가지는 javaScript의 값을 말한다.
각 프로퍼티를 구분할 때 , 또는 ;를 사용할 수 있고, 가장 마지막에 위치한 구분자의 표기는 선택 사항이다.
Optional Property
객체 타입에 선택적으로 넣어야하는 프로퍼티가 있다면, 프로퍼티에 ? 를 붙이면 된다.
하지만 존재하지 않은 객체의 프로퍼티를 선택했을 때, 자바스크립트에서는 undefined를 출력하지만 타입스크립트에서는 strictNullChecks 옵션을 사용할 경우 이를 핸들링해 주어야 한다.
조건문을 통해 핸들링해 줄 수 있고, 옵셔널 체이닝 또는 삼항연산자 등을 통해 핸들링해줄 수 있다. 또 다른 방법으로는 default value를 설정함으로 이를 해결할 수 잇다.
Readonly Property
readonly 속성은 런타임 동작이 변경되지 않고, 유형 검사중에는 값을 쓸수 없다.
즉, 객체의 내부 내용은 변경할 수 있지만 값을 완전히 다시 쓸수는 없다.
const 와 readonly 비교
const
1.
변수 참조를 위한 것
2.
변수에 다른 값을 할당/대입할 수 없음.
readonly
1.
속성을 위한 것
2.
속성을 앨리어싱을 통해 변경될 수 있음
Extend Type
기존의 interface로 선언한 타입을 그대로 상속 받고 싶을 때, 사용한다.
AddressWithUnitBasicAddress 의 모든 타입을 상속받게 된다.
아래와 같이 복수의 타입을 상속 받을 수도 있다.
Intersection Type
타입 스크립트에서는 두개의 object type을 병합하면서 새로운 타입을 선언할 수 있다. 이를 Intersection type이라고 한다.
interface의 extend 와 비슷하다. 하지만 intersection type과 interface의 extend는 같은 맴버의 충돌을 처리하는 방법에서 차이가 있다.
interface의 extend 는 에러를 밷는다.
intersection type는 에러를 밷지 않고 union type으로 변경된다.
Generic Object types
각 타입별로 재사용성이 높은 여러가지 타입에서 동작하는 컴포넌트를 만들 때 사용된다.
예를 들면 각 타입별로 입력받을 수 있는 함수를 만든다고 하면, 아래와 같이 any를 쓸수 있다.
하지만 이는 타입 검사를 하지 않기 때문에, 함수에 어떤 타입이 인자로 들어갔는지 어떤 타입이 반환되는지 알수 없다. 그렇다고 모든 타입에 대해서 비슷한 함수명을 갖도록 선언하면 코드의 재사용성이 무척이나 떨어진다.
이러한 문제점을 해결하기 위해 제네릭을 사용한다.
이러한 제네릭을 원시 타입에 국한되지 않고 배열에도 적용시킬 수 있다.
number[], string[]Array<number>Array<string>의 축약어이다.
JavaScript 돌아가기
메인으로 돌아가기
앞서 여러가지 타입에 대해 알아보았다면 이번엔 객체 타입에 대해 심도있게 들여다 볼 것이다.
객체
객체는 프로퍼티를 가지는 javaScript의 값을 말한다.
각 프로퍼티를 구분할 때 , 또는 ;를 사용할 수 있고, 가장 마지막에 위치한 구분자의 표기는 선택 사항이다.
Optional Property
객체 타입에 선택적으로 넣어야하는 프로퍼티가 있다면, 프로퍼티에 ? 를 붙이면 된다.
하지만 존재하지 않은 객체의 프로퍼티를 선택했을 때, 자바스크립트에서는 undefined를 출력하지만 타입스크립트에서는 strictNullChecks 옵션을 사용할 경우 이를 핸들링해 주어야 한다.
조건문을 통해 핸들링해 줄 수 있고, 옵셔널 체이닝 또는 삼항연산자 등을 통해 핸들링해줄 수 있다. 또 다른 방법으로는 default value를 설정함으로 이를 해결할 수 잇다.
Readonly Property
readonly 속성은 런타임 동작이 변경되지 않고, 유형 검사중에는 값을 쓸수 없다.
즉, 객체의 내부 내용은 변경할 수 있지만 값을 완전히 다시 쓸수는 없다.
const 와 readonly 비교
const
1.
변수 참조를 위한 것
2.
변수에 다른 값을 할당/대입할 수 없음.
readonly
1.
속성을 위한 것
2.
속성을 앨리어싱을 통해 변경될 수 있음
Extend Type
기존의 interface로 선언한 타입을 그대로 상속 받고 싶을 때, 사용한다.
AddressWithUnitBasicAddress 의 모든 타입을 상속받게 된다.
아래와 같이 복수의 타입을 상속 받을 수도 있다.
Intersection Type
타입 스크립트에서는 두개의 object type을 병합하면서 새로운 타입을 선언할 수 있다. 이를 Intersection type이라고 한다.
interface의 extend 와 비슷하다. 하지만 intersection type과 interface의 extend는 같은 맴버의 충돌을 처리하는 방법에서 차이가 있다.
interface의 extend 는 에러를 밷는다.
intersection type는 에러를 밷지 않고 union type으로 변경된다.
Generic Object types
각 타입별로 재사용성이 높은 여러가지 타입에서 동작하는 컴포넌트를 만들 때 사용된다.
예를 들면 각 타입별로 입력받을 수 있는 함수를 만든다고 하면, 아래와 같이 any를 쓸수 있다.
하지만 이는 타입 검사를 하지 않기 때문에, 함수에 어떤 타입이 인자로 들어갔는지 어떤 타입이 반환되는지 알수 없다. 그렇다고 모든 타입에 대해서 비슷한 함수명을 갖도록 선언하면 코드의 재사용성이 무척이나 떨어진다.
이러한 문제점을 해결하기 위해 제네릭을 사용한다.
이러한 제네릭을 원시 타입에 국한되지 않고 배열에도 적용시킬 수 있다.
number[], string[]Array<number>Array<string>의 축약어이다.
JavaScript 돌아가기
메인으로 돌아가기
앞서 여러가지 타입에 대해 알아보았다면 이번엔 객체 타입에 대해 심도있게 들여다 볼 것이다.
객체
객체는 프로퍼티를 가지는 javaScript의 값을 말한다.
각 프로퍼티를 구분할 때 , 또는 ;를 사용할 수 있고, 가장 마지막에 위치한 구분자의 표기는 선택 사항이다.
Optional Property
객체 타입에 선택적으로 넣어야하는 프로퍼티가 있다면, 프로퍼티에 ? 를 붙이면 된다.
하지만 존재하지 않은 객체의 프로퍼티를 선택했을 때, 자바스크립트에서는 undefined를 출력하지만 타입스크립트에서는 strictNullChecks 옵션을 사용할 경우 이를 핸들링해 주어야 한다.
조건문을 통해 핸들링해 줄 수 있고, 옵셔널 체이닝 또는 삼항연산자 등을 통해 핸들링해줄 수 있다. 또 다른 방법으로는 default value를 설정함으로 이를 해결할 수 잇다.
Readonly Property
readonly 속성은 런타임 동작이 변경되지 않고, 유형 검사중에는 값을 쓸수 없다.
즉, 객체의 내부 내용은 변경할 수 있지만 값을 완전히 다시 쓸수는 없다.
const 와 readonly 비교
const
1.
변수 참조를 위한 것
2.
변수에 다른 값을 할당/대입할 수 없음.
readonly
1.
속성을 위한 것
2.
속성을 앨리어싱을 통해 변경될 수 있음
Extend Type
기존의 interface로 선언한 타입을 그대로 상속 받고 싶을 때, 사용한다.
AddressWithUnitBasicAddress 의 모든 타입을 상속받게 된다.
아래와 같이 복수의 타입을 상속 받을 수도 있다.
Intersection Type
타입 스크립트에서는 두개의 object type을 병합하면서 새로운 타입을 선언할 수 있다. 이를 Intersection type이라고 한다.
interface의 extend 와 비슷하다. 하지만 intersection type과 interface의 extend는 같은 맴버의 충돌을 처리하는 방법에서 차이가 있다.
interface의 extend 는 에러를 밷는다.
intersection type는 에러를 밷지 않고 union type으로 변경된다.
Generic Object types
각 타입별로 재사용성이 높은 여러가지 타입에서 동작하는 컴포넌트를 만들 때 사용된다.
예를 들면 각 타입별로 입력받을 수 있는 함수를 만든다고 하면, 아래와 같이 any를 쓸수 있다.
하지만 이는 타입 검사를 하지 않기 때문에, 함수에 어떤 타입이 인자로 들어갔는지 어떤 타입이 반환되는지 알수 없다. 그렇다고 모든 타입에 대해서 비슷한 함수명을 갖도록 선언하면 코드의 재사용성이 무척이나 떨어진다.
이러한 문제점을 해결하기 위해 제네릭을 사용한다.
이러한 제네릭을 원시 타입에 국한되지 않고 배열에도 적용시킬 수 있다.
number[], string[]Array<number>Array<string>의 축약어이다.
JavaScript 돌아가기
메인으로 돌아가기
앞서 여러가지 타입에 대해 알아보았다면 이번엔 객체 타입에 대해 심도있게 들여다 볼 것이다.
객체
객체는 프로퍼티를 가지는 javaScript의 값을 말한다.
각 프로퍼티를 구분할 때 , 또는 ;를 사용할 수 있고, 가장 마지막에 위치한 구분자의 표기는 선택 사항이다.
Optional Property
객체 타입에 선택적으로 넣어야하는 프로퍼티가 있다면, 프로퍼티에 ? 를 붙이면 된다.
하지만 존재하지 않은 객체의 프로퍼티를 선택했을 때, 자바스크립트에서는 undefined를 출력하지만 타입스크립트에서는 strictNullChecks 옵션을 사용할 경우 이를 핸들링해 주어야 한다.
조건문을 통해 핸들링해 줄 수 있고, 옵셔널 체이닝 또는 삼항연산자 등을 통해 핸들링해줄 수 있다. 또 다른 방법으로는 default value를 설정함으로 이를 해결할 수 잇다.
Readonly Property
readonly 속성은 런타임 동작이 변경되지 않고, 유형 검사중에는 값을 쓸수 없다.
즉, 객체의 내부 내용은 변경할 수 있지만 값을 완전히 다시 쓸수는 없다.
const 와 readonly 비교
const
1.
변수 참조를 위한 것
2.
변수에 다른 값을 할당/대입할 수 없음.
readonly
1.
속성을 위한 것
2.
속성을 앨리어싱을 통해 변경될 수 있음
Extend Type
기존의 interface로 선언한 타입을 그대로 상속 받고 싶을 때, 사용한다.
AddressWithUnitBasicAddress 의 모든 타입을 상속받게 된다.
아래와 같이 복수의 타입을 상속 받을 수도 있다.
Intersection Type
타입 스크립트에서는 두개의 object type을 병합하면서 새로운 타입을 선언할 수 있다. 이를 Intersection type이라고 한다.
interface의 extend 와 비슷하다. 하지만 intersection type과 interface의 extend는 같은 맴버의 충돌을 처리하는 방법에서 차이가 있다.
interface의 extend 는 에러를 밷는다.
intersection type는 에러를 밷지 않고 union type으로 변경된다.
Generic Object types
각 타입별로 재사용성이 높은 여러가지 타입에서 동작하는 컴포넌트를 만들 때 사용된다.
예를 들면 각 타입별로 입력받을 수 있는 함수를 만든다고 하면, 아래와 같이 any를 쓸수 있다.
하지만 이는 타입 검사를 하지 않기 때문에, 함수에 어떤 타입이 인자로 들어갔는지 어떤 타입이 반환되는지 알수 없다. 그렇다고 모든 타입에 대해서 비슷한 함수명을 갖도록 선언하면 코드의 재사용성이 무척이나 떨어진다.
이러한 문제점을 해결하기 위해 제네릭을 사용한다.
이러한 제네릭을 원시 타입에 국한되지 않고 배열에도 적용시킬 수 있다.
number[], string[]Array<number>Array<string>의 축약어이다.
JavaScript 돌아가기
메인으로 돌아가기
앞서 여러가지 타입에 대해 알아보았다면 이번엔 객체 타입에 대해 심도있게 들여다 볼 것이다.
객체
객체는 프로퍼티를 가지는 javaScript의 값을 말한다.
각 프로퍼티를 구분할 때 , 또는 ;를 사용할 수 있고, 가장 마지막에 위치한 구분자의 표기는 선택 사항이다.
Optional Property
객체 타입에 선택적으로 넣어야하는 프로퍼티가 있다면, 프로퍼티에 ? 를 붙이면 된다.
하지만 존재하지 않은 객체의 프로퍼티를 선택했을 때, 자바스크립트에서는 undefined를 출력하지만 타입스크립트에서는 strictNullChecks 옵션을 사용할 경우 이를 핸들링해 주어야 한다.
조건문을 통해 핸들링해 줄 수 있고, 옵셔널 체이닝 또는 삼항연산자 등을 통해 핸들링해줄 수 있다. 또 다른 방법으로는 default value를 설정함으로 이를 해결할 수 잇다.
Readonly Property
readonly 속성은 런타임 동작이 변경되지 않고, 유형 검사중에는 값을 쓸수 없다.
즉, 객체의 내부 내용은 변경할 수 있지만 값을 완전히 다시 쓸수는 없다.
const 와 readonly 비교
const
1.
변수 참조를 위한 것
2.
변수에 다른 값을 할당/대입할 수 없음.
readonly
1.
속성을 위한 것
2.
속성을 앨리어싱을 통해 변경될 수 있음
Extend Type
기존의 interface로 선언한 타입을 그대로 상속 받고 싶을 때, 사용한다.
AddressWithUnitBasicAddress 의 모든 타입을 상속받게 된다.
아래와 같이 복수의 타입을 상속 받을 수도 있다.
Intersection Type
타입 스크립트에서는 두개의 object type을 병합하면서 새로운 타입을 선언할 수 있다. 이를 Intersection type이라고 한다.
interface의 extend 와 비슷하다. 하지만 intersection type과 interface의 extend는 같은 맴버의 충돌을 처리하는 방법에서 차이가 있다.
interface의 extend 는 에러를 밷는다.
intersection type는 에러를 밷지 않고 union type으로 변경된다.
Generic Object types
각 타입별로 재사용성이 높은 여러가지 타입에서 동작하는 컴포넌트를 만들 때 사용된다.
예를 들면 각 타입별로 입력받을 수 있는 함수를 만든다고 하면, 아래와 같이 any를 쓸수 있다.