이것은 TypeScript에서 객체 내부에 속성을 정의하는 방법입니다.
변수를 선언할 때마다 타입을 지정하는 것보다 인터페이스를 사용하는 것이 더 편리하고 재사용이 가능하다.
인터페이스란 무엇입니까?
그것은 서로에 의해 정의된 약속과 규칙을 의미합니다.
다음 범주에 대해 약속(규칙)을 정의할 수 있습니다.
– 개체 사양(속성, 속성 유형)
– 함수의 매개변수
– 함수명세(파라미터, 리턴타입 등)
– 배열 및 개체에 액세스하는 방법
– 수업
type Score="A" | 'B' | 'C' | 'F' ;
interface User{
name : string;
age : number;
gender? : string; //(1)
readonly birthYear : number; //(2)
(grade:number) : Score; //(3)
}
let user: User = {
name: 'name',
age: 25,
birthYear : 1999,
1 : 'A';
}
(1) 선택적 속성 ?
속성 이름에 ?를 추가하여 옵션으로 만들 수 있습니다.
성별 속성이 없는 사용자 개체를 매개변수로 전달해도 오류가 발생하지 않습니다.
(2) 읽기 전용 속성.
인터페이스를 사용하여 객체를 처음 생성할 때만 값이 부여되는 속성으로 이후에는 변경할 수 없습니다.
그 앞에 읽기 전용을 사용하십시오.
(3) 문자열 리터럴 타입 선언
위에서 선언한 Score의 값만 입력할 수 있습니다.
기능 정의
interface Add {
(num1:number, num2:number) : number;
}
const add : Add = function(x, y){
return x+y;
}
add(10,20) => 30
add(10, '20') => err
함수는 인터페이스로도 정의됩니다.
(인수 매개변수 값): 반환 유형;
클래스 정의
//impliments
interface Car{
color: string;
wheels: number;
start(): void;
}
class Bmw impliments Car{
color;
wheels = 4;
constructor(c:string){
this.color = c;
}
start(){
console.log('gogo~ bmw');
}
}
const bmw = new Bmw('blue');
console.log(bmw.start()) // 'gogo~ bmw'
implements 키워드를 사용하십시오. 생성자를 사용하여 입력을 받을 수 있습니다.
interface Benz extends Car{ // Car가 가지고 있는 속성 그대로 가지고 있다.
door: number;
stop(): void;
}
extends를 사용하여 기존 Car 인터페이스에서 확장할 수 있습니다.
그것은 자동차가 가진 속성을 가지고 있습니다.
문과 정류장을 추가합니다.