Type Scriptオプション

7642 ワード

⭐noImplicitAny
:タイプが明示的に指定されていない場合、タイプスクリプトが推論でanyと決定された場合、コンパイルエラーが発生し、タイプを明示的に指定するように指示されます.
function f1(a) {
	return a * 38;
}
console.log(f1(10)) // 380
console.log(f1("Mark")+5) // NaN

// a의 타입을 명시해야한다.
⭐strictNullChecks
:すべてのタイプに自動的に含まれるnullおよびundefinedを除去します.
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를 사용해서 타입을 미리 선언해서 사용가능하다.