Typescript의 컴파일러
TypeScript 타입 정의 파일
외부 라이브러리에 대한 타입 정보를 제공한다
true, false
enum
, string
을 사용해야 한다function isValid(password : string) : boolean {
return password.length >= 8
}
const password = "qwer1234"
const valid = isValid(password)
if(valid) {
console.log("유효한 패스워드입니다")
} else {
console.log("유효하지 않은 패스워드입니다")
}
모든 숫자 데이터를 의미한다
function calArea(radius : number) : number {
return Math.PI * radius * radius
}
const radius = 5
const area = calArea(radius)
console.log(`반지름 길이 : ${radius}, 원의 넓이 ${area}`)
텍스트 데이터를 나타낸다
function greet(name : string) : string {
return `${name}님 안녕하세요 !`
}
const name = "홍길동"
const greeting = greet(name)
기본타입에 [ ] 가 붙은 형태의 타입을 의미한다
function calSum(numbers : number[]) : number {
let sum: number = 0
for (let i =0; i < numbers.length; i++) {
sum += numbers[i]
}
return sum
}
const scores : number[] = [90,10,50,40]
const sumScores = calSum(scores)
서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열이다
const person: [string, number, boolean] = ['홍길동', 30, false]
const person2: [string, number, boolean] = [30, "홍길동", false] // Error
타입의 순서에 맞게 값을 넣어야 한다
다양한 상수를 보다 더 이해하기 쉬운 문자열 이름으로 접근하고 사용할 수 있게한다
TypeScript에서 객체의 속성을 불변으로 만다는데 사용된다
class Person {
readonly name : string
readonly age : number
constructor(name : string, age : number) {
this.name = name
this.age = age
}
}
const person = new Person("홍길동", 30)
console.log(person.name) // 홍길동
console.log(person.age) // 30
person.name = "김길동" // Error : name은 readonly 속성이므로 재할당이 불가능하다
어떤 타입의 값이든 저장할 수 있다
let anything : any
anything = 5
anything = "Hello"
anything = { id : 1, name : "John" }
any 타입과 비슷한 역할을 하지만 더 안전한 방식으로 동작한다
let unknownValue : unknown = "Hello"
let stringValue : string
stringValue = unknownValue as string
console.log(stringValue) // Hello
여러 타입 중 하나를 가질 수 있는 변수를 선언할 때 사용한다
type StringOrNumber = string | number
function processValue(value: StringOrNumber) {
if (typeof value === 'string') {
console.log('string value') // value는 여기서 string 타입으로 간주됨
} else if (typeof value === 'number') {
console.log('number value') // value는 여기서 number 타입으로 간주됨
}
}
processValue('Hello')
processValue(40)