타입스크립트(3)

null·2021년 10월 17일
0
  • 함수 타입1

// 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. 전체를 객체로 감싼다

  1. 그 다음 타입을 정의한다
  2. 이걸 여러 곳에서 쓰고 싶다면 interface로 정의한다 (우리가 주로 쓰는 방식)
// 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 {...
  • 함수 타입2
    함수 안에서 this 타입을 어떻게 정의할 것인가
    this를 맨 앞에 정의해주면 함수의 첫번째 파라미터는..
// 이렇게 하면 this는 오류가 남 
function getParam(index: number): string{
	const params = this.split(',');
	if (index < 0 || params.length <= index) {
		return '';
	}
	return this.split(',')[index];
}

// this: string
profile
개발이 싫어.

0개의 댓글