interface Dog{
readonly name:string
age:number
color?:string
}
let dog1:Dog ={
name:"구름",
age:3
//color 가 없어도 에러나지않음
}
let dog2:Dog = {
name:"몽이",
age:2,
color:"black"
}
optional
? 키워드로 사용할수있다 optional로 만들어진 타입은 말그대로 옵션이기때문에 선언할때 있을수도있고 없을수도있다 포함하지 않는다고해서 에러가 나지않는다.
interface
객체의 타입을 선언할때 사용하는 키워드이다. 타입을 확장할때에 type으로 선언한것보다 편리하고 성능적으로 객체의 타입을 만들때에는 interface를 사용하는걸 권장한다.
interface Dog{
name:string
age:number
}
//확장
interface Dog{
color:string
}
type Dog = {
name:string
age:number
}
//확장
type Dogstype = Dog&{
color:string
}
interface는 같은 타입이름을 사용해서 선언하는것으로 확장이 가능하다.
interface는 객체의 타입을 선언하는것만 가능하다.
interface에 메서드의 타입을 만들어서 받는것도 가능하다
interface TV{
turnon():boolean; //파라미터로 아무것도 받지않고 논리값을 리턴
turnoff():void; //파라미터로 아무것도받지않고 아무것도 리턴하지않음
}
const myTv:TV = {
turnOn(){
return true
},
turnOff(){
console.log("off")
}
}
readonly
읽기전용으로 만들고 객체와 배열에서만 사용가능하다.
interface Dog{
readonly name:string
age:number
color?:string
}
let dog1:Dog ={
name:"구름",
age:3
//color 가 없어도 에러나지않음
}
dog1.name = "초롱이" //error readonly는 수정할수없다.
읽기전용으로 타입을 선언하면 객체의 요소를 읽을수는 있지만 수정할수는 없게된다.
'프론트엔드 정복기 > 타입스크립트' 카테고리의 다른 글
타입스크립트 기본타입사용법(타입추론,타입명시,함수타입) (0) | 2023.02.24 |
---|---|
타입스크립트 - 타입스크립트 설치,사용법 (0) | 2023.02.24 |
타입스크립트-(타입스크립트란?) (0) | 2023.02.24 |