1. 함수 작성
const add = (num1: number, num2: number):void => {
console.log(num1 + num2)
}
2. 선택적 매개변수
const hello = (name?: string) => {
return `Hello, ${name || 'world'}`
}
hello() // Hello, world
hello('purple') // Hello, purple
3. 매개변수 옵션값
// 옶션값이 뒤에 있는 경우
const hello = (name: string, age?: number): string => {
if (age !== undefined) {
return `Hello, ${name}. You are ${age}.`;
} else {
return `Hello, ${name}.`;
}
}
hello('Sam',30) // "Hello, Sam. You are 30."
hello('Sam') // "Hello, Sam."
// 옶션값이 앞에 있는경우
const hello2 = (age: number | undefined, name: string): string => {
if (age !== undefined) {
return `Hello, ${name}. You are ${age}.`;
} else {
return `Hello, ${name}.`;
}
}
hello2(undefined,'Sam') // "Hello, Sam."
4. 나머지 매개변수
const add = (...nums: number[]) => {
return nums.reduce((acc,cur) => acc + cur, 0)
}
add(1,2,3) // 6
5. This
// 1. interface
interface User {
name: string;
}
// 2. interface로 객체 Sam 생성
const Sam: User = { name:'Sam'}
// 3. 함수 설정 (화살표 함수로 작성하면 오류가 생긴다)
function showName(this:User ,age:number, gender:'m'|'f') {
console.log(this.name, age, gender)
}
const getSame = showName.bind(Sam) // showName함수가 Sam 객체를 보여주도록 함
getSame(30,'m') // "Sam", 30, "m"
6. 매개변수 타입에 따라 결과가 다를 때
// 1. interface
interface User {
name: string
age: number
}
// 2. 오버로드를 사용해서 타입에 따른 결과를 다를게 설정
function join(name: string, age: number): User;
function join(name: string, age: string): string;
function join(name: string, age: number | string): User | string {
if (typeof age === 'number') {
return {
name,
age
}
} else {
return "나이를 숫자로 입력해주세요"
}
}
const sam : User = join("Sam", 30)
const jane : string = join("Jane","30")
'개발 공부 > Typescript' 카테고리의 다른 글
[코딩앙마] typescript - 6 : 클래스 (0) | 2023.03.29 |
---|---|
[코딩앙마] typescript - 5 : 리터럴, 유니온/교차 타입 (0) | 2023.03.24 |
[코딩앙마] typescript - 3 : 인터페이스 (0) | 2023.03.22 |
[코딩앙마] typescript - 2 : 기본타입 (0) | 2023.03.21 |
[코딩앙마] typescript - 1 : 타입스크립을 쓰는 이유 (0) | 2023.03.21 |