Number, 숫자
let decimal:number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
number 타입을지정합니다.
6.
String, 문자열
let name:string = "jbee";
let greeting: string = `Hi, I'm ${name}!`;
string 타입을지정합니다.
7.
Array, 배열
let arr:number[] = [1, 2, 3];
or
let arr: Array<number> = [1, 2, 3];
기존에배열리터럴을사용하여배열을정의하면서정의하는배열에어떠한데
이터타입의원소가 들어갈 것인지를Type을통해제공할수있습니다. (전자
의형태가 design guide)
8.
Tuple, 튜플
key-value 의형태를저장할때는, 위와같이타입을지정해줄수있습니다.
TStranspiler가 잘못된타입의값이들어왔다는것을error message로알려
줍니다.
let tuple: [string, number];
tuple = ["age", 25];
tuple = ["name", "jbee];// Error
> message: 'Type '[string, string]' is not assignable to type '
Type 'string' is not assignable to type 'number'.' at: '5,1'
9.
Enum
enum Color {Red,Green, Blue};
let c: Color = Color.Green;
마찬가지로Java의 enum 과 같은구조를갖습니다. 시작하는멤버에0부터
번호를매기고, 만약1부터시작해야한다면임의적으로시작하는숫자를지정
할수있습니다. 또는각각에게 번호를지정할수도있습니다.
enum Subject {Math = 1, Science = 3, History = 7}
console.log(Subject[3]);//Science
지정한번호로호출도가능합니다.
let notSureVar; //== let notSureVar: any;
any 로타입을지정하는것과 위의자바스크립트는동치라고 볼수있습니다.
13.
let arr: any[]= [1, `jbee`, true];
여러가지타입의요소가 포함되는배열을정의할때도 any 를사용할수있
습니다.
any 의역할이자바스크립트에서의 Object 와같은역할을하는느낌이드
는데요, 실제로2.2version에서 Object 타입이추가되었습니다. 일단코드
를통해확인해보겠습니다.
14.
let user ={
getName() {
console.log(`hi`);
},
name : "jbee"
}
let notSureObj: Object;
notSureObj = user;
notSureObj.getName(); // error
notSureObj.name; // error
//Property 'getName' does not exist on type 'Ojbect'
let notSureVar: any;
notSureVar = user;
notSureVar.getName(); // success
notSureVar.name; // "jbee"
15.
변수의type을 Object 로지정하고, 실제Object를정의하여변수에할당했
습니다. 그리고할당한Ojbect에존재하는메소드를호출했더니에러가 발생
합니다. getName() 이라는프로퍼티가 없다고 하네요.
분명 getName() 메소드가 존재하는Ojbect를할당했는데말이죠. name
프로퍼티도마찬가지입니다. 하지만 any 타입으로지정했을때는메소드를
호출할수있고, 프로퍼티를찾을수있습니다. 이 Object 타입은할당만가
능할뿐, 메소드나프로퍼티에접근할수없습니다.
About Object Type
16.
Void
값을반환하지않는함수의return type을지정할때사용할수있습니다.
function greeting():void {
console.log(`hi`);
}
물론변수의타입에도사용할수있습니다.
let foo: void;
foo = undefined;
foo = null;
foo = `foo`; //error
> Type 'string' is not assignable to type 'void'
하지만 void 로선언된변수에는 undefined 와 null 값만할당할수있
습니다.