TypeScript옵션

수빈·2022년 3월 22일
0

TypeScript

목록 보기
3/7

타입 시스템

컴파일러에게 사용하는 타입을 명시적으로 지정하는 시스템으로 컴파일러가 자동으로 타입을 추론하는 시스템이다.

⭐noImplicitAny

: 타입을 명시적으로 지정하지 않은경우, 타입스크립트가 추론중 any라고 판단하게 되면, 컴파일 에러를 발생시켜 명시적으로 지정하도록 유도한다.

function f1(a) {
	return a * 38;
}
console.log(f1(10)) // 380
console.log(f1("Mark")+5) // NaN

// a의 타입을 명시해야한다.

⭐strictNullChecks

: 모든 타입에 자동으로 포함되어있는 nullundefined를 제거해준다.

function f2(a:number){
	if(a > 0) {
    	return a * 38;
    }
}
console.log(f2(5))
console.log(f2(-5) + 5); //NaN 런타임에러 undefined + 5가된다.
// f2()함수의 리턴 타입이 number | undefined로 추론되어 런타임에러가 발생한다.

⭐noImplicitReturns

: 함수 내에서 모든 코드가 값을 리턴하지 않으면, 컴파일 에러를 발생시킨다.

function f3(a:number):number{
	if(a>0){
    	return a *38;
    }
	return a; //리턴을 생략할 경우, error
}

function f4(a:{name:string; age:number}):string{
   return `이름은 ${a.name} 연령대 ${Math.floor(a.age /10)*10} 입니다.`;
}

console.log(f6({name: 'Mark', age:38}));
console.log(f6({'Mark'})) //error
// interface나 type를 사용해서 타입을 미리 선언해서 사용가능하다.
interface f4Interface{
	name :string;
  	age :number;
}
type f4Type = {
	name :string;
  	age :number;
}
function f4(a :f2Interface){
	return `이름은 ${a.name}, 연령대 ${Math.floor(a.age /10)*10}입니다.`
}

0개의 댓글

관련 채용 정보