TypeScript - [function]

박성원·2020년 11월 25일
0

TypeScript

목록 보기
5/9
post-thumbnail

typescript에서는 리턴 타입을 명시해줘야한다.

function greet(): string {
  // return type명시
  return 'hello world';
}

function caller() {
  var msg = greet();  // greet()의 return msg에 대입
  console.log(msg);
}

caller();

파라미터를 받는 Parameterized 함수

  • 함수를 호출할 때 인자값을 넘길 수 있음.
  • 반드시 인자리스트가 일치해야함

방법 2 가지

  • Call by Value
    인수의 실제 값을 함수의 형식 매개변수로 복사
    이 경우 함수 내의 매개변수에 대한 변경사항은 인수에 영향을 미치지 않음
// call by value
function test_param(n1: number, s1: string) {
  n1 = n1 + 100; // 복사된 변수 값 변경
  console.log(n1);
  console.log(s1);
}
let num = 100;
test_param(num, 'this is a string');
console.log(num);	// 100 
// test_param(123);  // 인자 리스트가 맞지 않으면, 함수를 호출 할 수 없다.
  • Call by pointer
    인수의 주소를 형식 매개 변수에 복사한다.
    함수 내에서 주소는 호출에 사용 된 실제 인수에 액세스 하는데 사용된다.
    즉, 매개변수 변경사항은 인수에 영향을 미친다.
class Person {
  username: string;
  constructor(n: any) {
    this.username = n;
  }
  setUsername(n: any) {
    this.username = n;
  }
  getUsername() {
    return this.username;
  }
}
const person = new Person('유관순');
function test_param2(p: Person) {
  p.setUsername('이순신'); // 객체 변경
}
test_param2(person);
console.log(person.getUsername); // 이순신
// call by pointer 배열 예제 
const str: string[] = ['홍길동', '이순신', '유관순'];
function changeName(s: string[]) {	// string의 배열 type을 매개변수로 
  s[0] = '강감찬';
}
console.log('변경전', str); // ['홍길동', '이순신', '유관순']
changeName(str);
console.log('변경후', str); // ['강감찬', '이순신', '유관순']
export {};


profile
개발 일기장

0개의 댓글