TS 시작 노트 2 - TS 인터페이스 승급 상세 정보
1. 왜 인터페이스가 필요합니까?
let obj:object; //
// obj = 1;
// obj = "123";
// obj = true;
obj = {
name:'lnj', age:33};
console.log(obj);
이전에 우리는 이런 방식으로 하나의ts의 대상을 정의했다고 소개했지만 이러한 정의 내부의 속성은 제한되지 않고 의미가 크지 않다.
대상 내의 각종 속성을 한층 더 정의하기 위해 인터페이스가 생겼다.
2. 인터페이스 유형은 무엇입니까?
number,string,boolean,enum 등 데이터 유형과 마찬가지로 인터페이스도 하나의 유형이고 사용자를 구속하는 데 사용된다. 그의 역할은 대상 내의 각종 속성을 더욱 정의하는 것이다.
기본 용법
// : , ,
interface FullName{
firstName:string
lastName:string
}
let obj = {
firstName:'Jonathan',
lastName:'Lee'
// lastName:18
};
//{firstName, lastName}
function say({
firstName, lastName}:FullName):void {
console.log(` :${
firstName}_${
lastName}`);
}
say(obj);
4. 속성 수량이 확실하지 않을 때의 정의 방법
만약에 인터페이스를 사용하여 변수나 형삼을 한정한다면 변수나 형삼에 값을 부여할 때 부여한 값은 반드시 인터페이스에 한정된 것과 똑같아야만 된다. 하나 또는 하나 적어서는 안 된다.
그러나 개발 과정에서 우리는 종종 하나 이상의 장면을 만날 수 있다.
(1) 하나 적음, 옵션 속성 사용
선택할 수 있는 속성은 이름과 같고 사용법도 간단합니다. 속성 이름 뒤에 하나만 추가하면 됩니까?됐습니다.
// : middleName , middleName, firstName lastName
interface FullName{
firstName:string
lastName:string
middleName?:string
[propName:string]:any
}
function say({
firstName, lastName, middleName}:FullName):void {
// console.log(` :${firstName}_${lastName}`);
if(middleName){
console.log(` :${
firstName}_${
middleName}_${
lastName}`);
}else{
console.log(` :${
firstName}_${
lastName}`);
}
}
say({
firstName:'Jonathan', lastName:'Lee', middleName:"666"});
say({
firstName:'Jonathan', lastName:'Lee'});
(2) 하나 더, 색인으로 서명
예를 들어arr[10]이나obj[key]를 설명하는 데 사용됩니다.
뜻이 추상적이어서 정의 대상에서 키(propName)와value의 데이터 구조로 이해할 수 있다. 후속 대상의 속성은 키와value가 색인 서명의 제한을 충족시키면 된다. 몇 개가 있든 상관없다.
interface FullName {
[propName:string]:string
}
let obj:FullName = {
// : key value ,
firstName:'Jonathan',
lastName:'Lee',
// middleName:false //
// key ,
// false: '666'
}
interface stringArray {
[propName:number]:string
}
let arr:stringArray = {
0:'a',
1:'b',
2:'c'
};
// let arr:stringArray = ['a', 'b', 'c'];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
5. 인터페이스의 계승
TS의 인터페이스는 JS의 클래스와 마찬가지로 상속할 수 있습니다.
interface LengthInterface {
length:number
}
interface WidthInterface {
width:number
}
interface HeightInterface {
height:number
}
interface RectInterface extends LengthInterface,WidthInterface,HeightInterface {
// length:number
// width:number
// height:number
color:string
}
let rect:RectInterface = {
length:10,
width:20,
height:30,
color:'red'
}
6. 함수 인터페이스
함수는 본질적으로 특수한 대상이므로 우리는 인터페이스로 함수의 매개 변수와 반환 값을 정의할 수 있다.
interface SumInterface {
(a:number, b:number):number
}
//
let sum:SumInterface= function(x,y) {
return x + y;
}
let res = sum(10, 20);
console.log(res);
ts 시작 노트 디렉토리:
TS 시작 노트 1 - TS 유형 선언
TS 시작 노트 2 - TS 인터페이스 승급 상세 정보
TS 시작 노트 3 - TS의 함수 설명
TS 시작 노트 4 - TS의 유형 단언(해석형 유형 변환)
TS 시작 노트 5 - TS의 일반
TS 시작 노트 6 – ts의 선언 파일, 모듈, 네임스페이스
지식을 기록하고 즐거움을 전해라~
만약 나의 총결산이 당신에게 도움이 된다면 저에게 좋아요를 눌러주세요. 당신의 격려는 내가 지속적으로 기록하는 큰 동력입니다~
만약 문장에 오류가 있다면 많이 양해해 주시고 평론에서 지적해 주시기를 환영합니다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.