2017-01-12 3 views
0
다음과 같이 내가 문자열 열거 선언 한

를 사용하여 값을 문자열로 변환합니다. 문자열 (백엔드에서 오는)을 값 (예 : "None" =>BootDeviceSelector.noChange)으로 변환하는 일반 매핑 기능이 필요합니다. 매개 변수와 함수의 출력을 선언하는 방법을 모른다 (어쩌면 any보다 좋을 것이다). 이 함수 값을 변환하여 값 목록을 검색하여 네임 스페이스 이름 (예 : BootDeviceSelector)으로 전달할 것을 기대합니다.타이프의 일반적인 기능은 문자열 열거

또는 한 줄은 다음과 같이, 충분 :

let a: BootDeviceSelector = (<any>BootDeviceSelector)['Pxe']; 
console.log(a); 

그러나 여기에서 나는 undefined 있어요.

typescript 2.0.10과 Angular 2.3.1을 사용하고 있지만 업그레이드 할 수는 있지만 codelyzer 패키지로 linting을 수행합니다.

+0

하지만 요점은 무엇입니까? 'BootDeviceSelector.noChange'는''None ''이고''None''을 이미 얻었습니다. –

+0

''None ''은 백엔드에서 온 것입니다. 응용 프로그램에서는'SomeObject.bootDeviceSelector : BootDeviceSelector' -'BootDeviceSelector' 유형의 클래스 속성을 사용합니다. – koral

+0

'let a = "None"'과'let a = BootDeviceSelector.noChange' 사이에는 차이가 없습니다. 'BootDeviceSelector'에서'None'에 해당하는 참조를 찾으려고하면, 처음 시작한 것을 끝내기 때문에 아무 것도 얻지 못할 것입니다. –

답변

0

Reverse-Mapping for String Enums을 확인하십시오. 예 :

enum BootDeviceSelector { 
    noChange = <any>'None', 
    PXE_ISCSI = <any>'Pxe' 
} 

let bds: BootDeviceSelector = BootDeviceSelector.PXE_ISCSI; 
관련 문제