개키우는개발자 : )

TypeScript 기본타입 본문

TypeScript/TypeScript

TypeScript 기본타입

DOGvelopers 2020. 1. 3. 18:00
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

| 타입 스크립트 기본 타입

 

최신 ECMAScript 표준은 다음과 같은 7개의 자료형을  정의한다.

let numValue : number;
let stringValue : string;
let boolenValue : boolean;
let undefinedValue : undefined;
let nullValue : null;
let objValue : object;
let symbolValue : symbol;
let anyValue : any;

기본 자료형(Primitive) 타입

  • Number
  • String
  • Boolean
  • Undefined
  • Null
  • Symbol (ECMAScript 6에 추가됨)

 

  • 객체형 타입 object가 있습니다.

 

타입을 선언한 변수는 꼭 같은 타입으로만 값을 넣어주어야 합니다.

 

| number type

 

음수, 양수, 소수점 값 모두 입력이 가능한 타입. 

numValue = 1;
numValue = -1;
numValue = 3.3;
numValue = 3.33333;
numValue = 3333.3;

 

| string type

 

문자열 값을 입력할 수 있는 타입 특징은 "" Double Quotation , '' Single Quotation 모두 가능하며 es6에서 나온

`` Template literal(백 틱) 3가지 방식이 가능합니다. "", '' 은 값을 입력할 때 줄 바꿈을 할 수 없습니다. 하지만 ``은 줄 바꿈도 가능하고 ` ` 안에 ${ } string interpolation이라 하는데 수식 또는 자바스크립트 변수 등등 값을 넣을 수 있습니다.

stringValue ="hello";
stringValue ='hello';
stringValue =`
hello
hi
${1+1}
`;
stringValue ="he
llo"; // 에러

 

| boolean type 

 

true , false 값만 가능

booleanValue = true;

 

| undefined type & Null type

 

값을 할당하지 않은 변수는 undefined 값을 가진다.

Null 타입은 딱 한 가지 값, null을 가질 수 있다.

undefined 나 null 타입은 애초에 모든 타입의 가장 하위 타입이기 때문에 모든 타입에 값을 적용합니다. 하지만 굳이 이 두타입을 타입으로 선언해서 사용할지는 의문이네요?ㅋ

undefinedValue = undefined;
undefinedValue = null;
numValue = null;
numValue = undefined;
objValue = null;
objValue = undefined;
symbolValue = null;
symbolValue = undefined;

| 두 타입의 차이

null 또는 undefined를 검사할 때, 동등 연산자(==)와 일치 연산자(===)의 차이를 주의하세요. 동등 연산자는 자료형 변환을 수행합니다.

typeof null          // "object" (하위호환 유지를 위해 "null"이 아님)
typeof undefined     // "undefined"
null === undefined   // false
null  == undefined   // true
null === null        // true
null == null         // true
!null                // true
isNaN(1 + null)      // false
isNaN(1 + undefined) // true

 

| Symbol type

 

Symbol 은 ECMAScript 6에서 추가되었다. Symbol은 유일하고 변경 불가능한 (immutable) 기본값 (primitive value)이다. 또한, 객체 속성의 key 값으로도 사용될 수 있다.

MDN에 들어가서 보시면 훠얼씬 정확하게 알 수 있습니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol

 

new 연산자를 사용하지 않습니다. 함수형 

symbolValue = Symbol();
symbolValue = Symbol(1);
symbolValue = Symbol(2);
symbolValue = Symbol(3);

{
  symbolValue : 'hi'
}

 

| Object type

 

컴퓨터 과학에서, 객체는 식별자 (Identifier)로 참조할 수 있는, 메모리에 있는 값이다.

object 타입에는 원시형 값인 문자, 숫자, Boolean 값을 넣을 수 없다. 객체 안에 key와 value로 값을 저장할 수 있다.

objValue = new Object();
objValue = {}
objValue = { name : 'dog' };

또 다른 방법으로는 String 객체는 값을 저장할 수 있다 하지만, String 함수의 hi는 기본 타입의 문자 이기 때문에 new 연산자를 사용한 String 객체와는 다르게 값을 저장할 수 없습니다. Obejct도 객체고 new 연산자로 값을 불러오면 그것 또한 객체기 때문에 값이 저장 가능하죠

objValue = new String("hi"); // true

objValue = String("hi"); // error

그렇다면 Object type에 객체 key 값들의 타입 또한 지정 가능합니다. user1 객체의 name은 string , score는 number 타입으로 지정하였기 때문에 user1의 값들에는 정확한 타입의 값이 들어가야 합니다.

let user1 : {name : string ,score: number};

user1 = { name : "dog", score : 50 } // true

user1 = { name : "dog", score : "50" } // error

 

| Array type

 

배열 또한 타입을 지정할 수 있습니다. nameList 에는 String 값만 넣을 수 있으며, tuple2 배열에는 숫자, 문자, 2개의 index값만 넣을 수 있습니다.

let nameList : string[];
nameList = ["a","b","c"];

let tuple2 : [number,string];
tuple2 = [1,"hi"];

 

| Any type

 

최상위 타입으로 어떠한 타입이든 저장 가능하다.

anyValue = "a";
anyValue = 1;
anyValue = {};
anyValue = null;

 

반응형

'TypeScript > TypeScript' 카테고리의 다른 글

TypeScript 함수형 타입  (0) 2020.01.04
TypeScript 인터페이스  (0) 2020.01.04
TypeScript 변수선언  (0) 2020.01.03
TypeScript 컴파일러 설정파일  (0) 2020.01.03
TypeScript 컴파일러  (4) 2020.01.01
Comments