타입 선언
1. 타입 추론
변수만 생성 초기값 할당 시 TS가 타입 추론
let a = "hi" //string 추론
a = 1 //에러
2. 타입 명시
let a : boolean = 'x' //에러
let c : number[] = [1,2,3]
간단할 경우 추론!
타입 별칭
특정 타입이나 인터페이스를 참조할 수 있는 타입 변수
//string 타입 사용
const name: string = '김야옹';
//타입별칭 사용
type Man = string;
const name:Man = '김야옹';
type Words = {
[key: string]: string; //property이름모르지만 타입만 알때
};
type Health = 1 | 5 | 10; //특정값 제한도 가능
함수에서는?
type User = {
name: string,
age?:number
}
//매개변수 타입 //리턴타입 명시(객체 자체 리턴)
function userMaker(name:string) : User{
return { name } //=name: name /key, value가 동일경우 ts 자동축약
}
const a = userMaker("김야옹")
console.log(a); // { name: "김야옹" }
a.age = 12
*화살표 함수
const userMaker = (name: string): User => ({name})
- {}중갈호 같이 적는다면 return 필수
- 한줄로 작성시 {return} 생략가능
- 객체 리터럴을 반환할 때는 중괄호가 코드 블록으로 인식되지 않도록 소괄호() 필요
?옵션
객체 속성, 함수 매개변수 등 선택적 사용일 경우 사용
type User = {
name: string,
age?: number //age : number | undefined
}
const a:User = { name: "가나다", age: 12}
const b:User = { name: "마바사"} //age 없어도 됨
if(a.age <20){ //에러 a.age가 undefined일 가능성 알림
}
if(a.age && a.age <20){ //ok
}
readonly
최초 선언 후 수정 불가
type User = {
readonly name: string, //수정시 알려줌
age?:number
}
const userMaker = (name: string): User => ({name})
const a = userMaker("김야옹")
nico.name = "김멍멍" //오류
const numbers: readonly number[] = [1, 2, 3, 4]
numbers.push(1) //에러
'TypeScript' 카테고리의 다른 글
| [TypeScript] Class / Interface (0) | 2024.11.30 |
|---|---|
| [TypeScript] Call Signatures / Over Loading / Generics (0) | 2024.11.30 |
| [TypeScript] 기본타입 (0) | 2024.11.29 |
| [TypeScript] 설치 및 환경 구축 (0) | 2024.11.27 |
| [TypeScript] 개요 (0) | 2024.11.26 |