숫자형
let decimal:number = 6;
let hex:number = 0xf00d;
let binary:number = 0b1010;
let octal:number =0o744;
let notANumber:number = NaN;
let underscoreNum :number = 1_000_000;
NaN은 "Not a Number"의 약자로, 자바스크립트에서 특별한 숫자 값으로서 숫자가 아님을 나타낸다. 이것은 일반적으로 수학적인 연산이 실패하거나 정의되지 않을 때 반환되는 값이다.
불리언형
let isDone:boolean = false;
isDone = true;
console.log(typeof(isDone));
let isOK:Boolean = true;
문자열형
let myName:string ="이동규";
let age:number = 26;
let sentence:string = `my name is ${myName+age}. I'll be ${age+1} years old next month`;
console.log(sentence);
심볼문자형
console.log(Symbol('foo') === Symbol('foo'));
console.log(Symbol('foo'));
const sym = Symbol();
const obj = {[sym]: "value"};
console.log(obj[sym]);
어래이형
let arr:number[] = [1,2,3,4,5];
let arr2:Array<number> = [1,2,3,4,5];
let arr3:(number | string)[] = [1,2,3,4,'a'];
let arr4:Array<number | string> = [1,2,3,4,'a'];
튜플형
let x:[string,number];
x = ["hello",3];
const person:[string,number] = ["Mark",39];
const [first,second] = person;
오브잭트형
const peron1 = {name:"mark" , age:39};
const peron2 = Object.create({name:"lee", age:20});
console.log(typeof(peron1),typeof(peron2));
declare function create(o:object | null):void;
create({prop:1});
애니형
function returnAny(message:any):any{
console.log(message);
}
const any1 = returnAny('리턴은 아무거나');
any1.toString();
let looslyTyped:any = {}
const d = looslyTyped.a.b.c.d;
function leackingAny(obj:any){
const a:number = obj.num;
const b = a +1;
return b;
}
const c = leackingAny({num:0});
언노운형
declare const maybe:unknown;
if (maybe === true) {
const aBoolean:boolean = maybe;
}
if (typeof maybe === 'string') {
const aString:string = maybe;
}
네버형
function error(message:string):never{
throw new Error(message);
}
function fail(){
return error("failed");
}
function infinteLoop():never{
while(true){
}
}
declare let a:string |number;
if (typeof a !== 'string') {
a;
}
type Indexable<T> = T extends string ? T & {[index: string]:any} : never;
type ObjectIndexable = Indexable<{}>;
보이드타입
function returnVoid(message:string):void{
console.log(message);
return undefined;
}
const r = returnVoid('리턴이 없다');