// string 저 자리는 반환 타입 정의해주는 자리
function getText(name: string, age: number, language?: string): string {
...
}
? optional parameters로 undefined 체킝
여기서 중요한 점은 옵셔널 파라미터는 제일 마지막 인자로 들어가야 한다. 그렇지 않으면 오류가 발생하는데..
두번째 인자가 age인지.. language인지 알 수가 없기 때문이다!! 그래서 languge를 두번째에 넣고 싶다면?
//옵파 자료1
function getText(name: string, language?:string | , age: number)
getText('mike', , 23);
//옵파 자료2
//1. 기본값이 있다는건 옵셔널파라미터 라는 것!
function getText(name: string, language:string = 'mike', age: 1)
//즉 name 파라미터만 불러와도 무방하다~
getText('mike')
// 2. rest parameters
function getText(name: string, ...rest: number[])
// rest parameters 타입은 항상 **배열**로 정의한다
getText('mike', 1, 2)
옵파 1처럼 undefined로 할 경우 가독성.. 그리고 파라미터가 점점점점 많아진다면?
파라미터에 이름을 부여해주자 = named parameters로 작성하자!
1. 전체를 객체로 감싼다
// 15 } : { > 여기가 타입 정의 부분
function getText({ name, age = 15 } : { name: string; age?: number}): string {
.....
//함수 사용시
getText({name: 'aaa' })
interface Props {
name: stirng;
age?: number;
}
function getText({name, age = 15}: Props): string {...
// 이렇게 하면 this는 오류가 남
function getParam(index: number): string{
const params = this.split(',');
if (index < 0 || params.length <= index) {
return '';
}
return this.split(',')[index];
}
// this: string