사용자와 구현자
- nolmplicitAny 옵션 : 타입을 명시적으로 지정하지x, 추론 중 'any'로 판단하면 컴파일 에러를 발생, 명시적으로 지정하도록 유도
- strictNullChecks 옵션 : 모든 타입에 자동으로 포함된 'null'과 'undefined'를 제거해준다.
- noImplicitReturns 옵션 : 함수 내 모든 코드가 값을 리턴하지 않으면, 컴파일 에러
매개변수에 object가 들어오는 경우
나만의 타입 만들기
interface ParaType{
name: string;
age: number;
}
type ParaTypeAlias = {
name: string;
age: number;
}
// (a: ParaType)
structural type System(ts)
nominal type system(c,java)
duck typing(python)
서브 타입
1. 공변 : 같거나 서브 타입인 경우에는 할당이 가능하다.
2. 반병 : 함수의 매개변수 타입만 같거나 슈퍼타입인 경우, 할당 가능
strictFunctionTypes 옵션 : 함수를 할당할 때 함수의 매개변수 타입이 같거나 슈퍼타입인 경우가 아닌 경우, 에러를 통해 경고
type NewString = string;
const name: NewString = 'capt';