TypeScript_타입의 종류와 정의

Devel|2021. 7. 7. 16:35
반응형

Any 타입

  • any type은 TypeScript의 모든 type의 super type으로서 동적 type을 나타낸다.
  • any type을 사용하면 변수에 대한 type 검사를 생략하는 것과 같다.

Built-in 타입

User-defined 타입

  • 사용자 정의 형식에는 열거 형 (enum), 클래스, 인터페이스, 배열 및 튜플등이 포함됨.

역따옴표(`) 사용하기

let fullName:string = `Bob Bobbington`;
let sentence:string = `hello, my name is ${fullName}`;

console.log(sentence);

 

 

 

 

배열

//배열

//1. 데이터 형식 []
let ex:number[]=[1,2,3];
console.log(ex.length);
console.log(ex);

//2.array<데이터> 형식
let ex2: Array<number>=[1,2,3];
console.log(ex2.length);
console.log(ex2);

 

튜플

//튜플 ==> 배열의 특정 위치에 고정된 타입만 저장가능

//Declare a tuple type
let x:[string, number];
x=["홍길동", 20]; //ok

//x = [20, "홍길동"];
console.log(x[0], x[1]);

//튜플 형식에 맞지 않게 x=[20,"홍길동"]; 적을 경우, 에러발생

 

**tsc킬때 에러가 발생하면, 파일 경로가 맞는지! 확인하기

any = 숫자도, 문자도 지정 가능함

 

//any타입은 Object 타입과 다르다
var a: any=null;
a=100;
console.log(a.toFixed(2));
a="홍길동";
console.log(a.trim(), a.length);

//object
var a2:Object = null;
a2 = 100;
console.log(a2);
a="홍길동";
console.log(a.trim(), a.length);

 

 

main7_inferredTyping

//타입추론

var num = 2;//number로 인식
console.log("value of num"+num);

//num = "12";

 

 

Type Assertion

  • Type Assertion은 변수의 타입을 다른 타입으로 변경하는 것을 의미한다.
  • 기본 규칙은 현재타입-> any →목적타입 순으로 설정함.
  • ‘타입 캐스팅'는 런타임에 타입이 변경됨을 의미하지만, Type Assertion은 컴파일 시점 에 발생됨을 의미한다.

(자바로 따지면 형변환)

 

//any타입은 바로 <타입>사용 가능
let someValue:any = "this is a string"
let strLength:number=(<string>someValue).length;
console.log(strLength);

//as 형식이 주로 사용됨
let strLength2:number=(someValue as string).length;
console.log(strLength2);

>16, 16 나옴

 

 

 

 

 

 

현재타입 -> any -> 목적타입

//현재타입 -> any -> 목적타입
var str = "1";
var str4:string=((str as any)as string);
console.log(str4);

 

//현재 타입 -> any->목적타입
//str string 을 number로 ㅂ꾸려고 한다
var str2:number = <number><any>str; //string -> any -> number
var str3 :string = <string><any>str2; //number->any->string
console.log(str, str2, str3);

 

 

 

 

댓글()
loading