TypeScript 진 향 시리즈 - 매 거
5144 단어 typescript자바 script전단
TypeScript 진 향 시리즈 의 내용 은 참고 중국어 문서 할 것 입 니 다. 그러나 글 의 예 는 문서 의 예 와 중복 되 지 않 고 일부 지역 에 대해 서도 깊이 연구 할 것 입 니 다.또한, 글 의 일부 예 결 과 는 코드 가 잘못 되 지 않 은 후에 자바 스 크 립 트 로 컴 파일 되 어 얻 은 것 이다.TypeScript 가 JavaScript 로 컴 파일 된 코드 를 실제로 보 려 면 TypeScript 온라인 컴 파일 주소 에 방문 하여 조작 할 수 있어 더욱 인상적 입 니 다.
콘 셉 트
매 거 진 것 은 JavaScript 표준 데이터 형식 집합 에 대한 확장 으로 일정한 범위 내 에서 값 을 추출 하 는 장면 에 한정 되 어 있 습 니 다.TypeScript 에서 숫자 와 문자열 의 매 거 진 을 지원 합 니 다.우 리 는 enum 으로 실현 할 수 있다.
숫자 매 거
먼저 숫자 개의 예 를 들 어 보 자.
enum Basketballer{
Yao,
Yi,
Wang
}
Basketballer.Yao; //0
Basketballer.Yi; //1
Basketballer.Wang; //2
우리 도 이렇게 할 수 있다. 아래 의 이 방법 은 역방향 맵 이 라 고 불 린 다. 즉, 값 을 통 해 키 에 접근 하 는 것 이다.
Basketballer[0]; //"Yao"
Basketballer[1]; //"Yi"
Basketballer[2]; //"Wang"
Basketballer[3]; //undefined
위의 예 에서 저 희 는 Yao 나 다른 멤버 들 을 초기 화하 지 않 았 습 니 다. 만약 에 저희 가 초기 화 를 하면:
enum Basketballer{
Yao = 1,
Yi,
Wang
}
Basketballer.Yao; //1
Basketballer.Yi; //2
Basketballer.Wang; //3
Basketballer[1]; //"Yao"
Basketballer[2]; //"Yi"
Basketballer[3]; //"Wang"
위 에서 알 수 있 듯 이 한 멤버 가 하나의 값 을 설정 하면 뒤의 해당 값 이 점점 증가한다.그러나 특별한 목적 이 없다 면 여러 멤버 에 게 수 동 할당 을 하지 않 는 것 이 중요 하 다.가끔 문제 가 생 길 수 있 기 때문이다.
enum Basketballer{
Yao = 1,
Yi,
Wang = 2,
Zhu,
Zhou,
}
Basketballer[2]; //"Wang"
Basketballer.Yi; //2
매 거 진 간단 한 응용 프로그램:
enum Basketballer{
Yao = 1,
Yi,
Wang,
Zhu,
Zhou,
}
function one(arg: Basketballer): string{
let num = arg;
switch (num) {
case 1:
return Basketballer[num] + " ";
case 2:
return Basketballer[num] + " ";
case 3:
return Basketballer[num] + " ";
default:
return " ";
}
}
one(1); //"Yao "
one(6); // " "
one("1"); // ,“1” Basketballer
숫자 매 거 에서 우 리 는 매 거 진 구성원 의 값 을 정의 할 때 상수 일 수도 있 고 계산 할 수도 있다.
매 거 멤버 값 상수
1. 매 거 진 첫 번 째 멤버 가 초기 화 되 지 않 았 습 니 다.
enum Basketballer{
Yao
}
Basketballer.Yao; //0
2. 초기 화 기 를 가지 고 있 지 않 으 며 이전 멤버 는 숫자 상수 입 니 다.
enum Basketballer1{
Yao, //0
Yi, //1
Wang //2
}
enum Basketballer2{
Yao = 1, //1
Yi, //2
Wang //3
}
3. 매 거 진 구성원 들 은 상수 매 거 진 표현 식 을 사용 하여 초기 화 합 니 다.다음 조건 이 그 중 하 나 를 만족 시 키 면 상수 매 거 진 표현 식 입 니 다. 매 거 진 표현 식 의 글자 수 (주로 문자열 의 글자 수 나 숫자 글자 수) 입 니 다.
enum Man{ a = 1}
이전에 정 의 된 상수 매 거 진 구성원 에 대한 인용 (서로 다른 매 거 진 형식 에서 정의 할 수 있 습 니 다)
enum Man{ a = 1, b = 2*a}
괄호 가 있 는 상수 매 거 식
enum Man{ a = 1, b = 2*(a +1)}
1 원 연산 자 +, -, 그 중 하 나 는 상수 매 거 진 표현 식 에 사용 되 었 습 니 다.
enum Man{ a = 1, b= ~a}
상수 매 거 식 은 이원 연산 자 +, -, *, /,%, < > >, &, |, ^ 의 조작 대상 으로 합 니 다.상수 매 거 진 표현 식 이 값 을 구 한 후에 NaN 이나 Infinity 이면 컴 파일 단계 에서 오 류 를 보고 합 니 다.
enum Man{ a = 1 << 2}
매 거 구성원 값 을 계산 값 으로 하 다.
위 에서 열거 한 모든 매 거 진 구성원 을 제외 하고 계산 해 야 할 값 으로 여 겨 집 니 다.
enum Man{ a = "abc".length }
문자열 매 거
문자열 매 거 진 에는 자체 적 으로 증가 하 는 특성 이 없습니다. 초기 화 할 때 모든 구성원 에 게 문자열 을 설정 해 야 합 니 다.
enum Basketballer{
Yao = " ",
Yi = " ",
Wang = " ",
}
Basketballer.Yao; //" "
그러나 문자열 매 거 진 에는 역방향 맵 이 없습니다:
Basketballer[" "]; //
이성적으로 열거 하 다.
이 구 조 는 숫자 매 거 와 문자열 매 거 의 결합 체 에 해당 하지만 공식 문 서 는 이렇게 쓰 는 것 을 권장 하지 않 습 니 다.
enum Basketballer{
Yao = " ",
Yi = 1,
}
const 매 거
현재 매 거 진 형식 을 const 수식 자 를 통 해 강조 할 수 있 습 니 다. const 매 거 진 은 상수 매 거 진 표현 식 만 사용 할 수 있 고 컴 파일 단계 에서 삭 제 됩 니 다.우 리 는 const enum 으로 정의 할 수 있 습 니 다.
const enum Man {
A,
B,
C,
D
}
let man = [Man.A, Man.B, Man.C, Man.D];
console.log(man); // [0, 1, 2, 3]
컴 파일 결 과 를 봅 시다.
let man = [0 /* A */, 1 /* B */, 2 /* C */, 3 /* D */];
console.log(man); // [0, 1, 2, 3]
외부 매 거
외부 매 거 진 은 이미 존재 하 는 매 거 진 형식의 모양 을 설명 하 는 데 사 용 됩 니 다. declare enum 으로 정의 할 수 있 습 니 다.
declare enum Man {
A,
B,
C,
D
}
let man = [Man.A, Man.B, Man.C, Man.D];
컴 파일 결 과 를 봅 시다.
let man = [Man.A, Man.B, Man.C, Man.D];
레 퍼 런 스
https://github.com/zhongsp/Ty... https://github.com/jkchao/typ...
마지막.
글 중 일 부 는 자신의 이 해 를 넣 을 수 있 습 니 다. 부정 확 하거나 잘못된 부분 이 있 으 면 지적 해 주 십시오 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Typescript 팁: 브랜드 유형을 사용하면 더 안전한 기능을 사용할 수 있습니다.다음과 같은 함수가 있다고 상상해 보십시오. 페이지 번호는 음수가 될 수 없기 때문에 분명히 잘못된 것입니다. 간단한 해결책은 다음과 같은 줄을 추가하는 것입니다. 그러나 음수로 함수를 호출하려고 할 때 유형 오류가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.