Bit에는 Bit Id를 나타내는 두 가지 주요 형식이 있습니다.

BitId instance

범위, 이름 및 버전의 명확한 속성이 있는 BitId 클래스의 인스턴스입니다. 예: BitId { scope: 'my-scope', name: 'my-name', version: '0.0.1 } . 이것이 BitId의 바람직한 표현입니다. 가능하면 이 형식을 사용하십시오.

비트 ID 문자열

BitId의 문자열 표현입니다. BitId.toString() 은 이 문자열을 생성합니다. 예: my-scope/my-name@0.0.1 . 최종 사용자가 ID를 입력하면 항상 문자열입니다. 문자열 표현의 문제는 동적 네임스페이스가 도입된 이후로 ID에 범위가 있는지 여부가 문자열에서 명확하지 않다는 것입니다. 이전 예에서 my-scope/my-name 은 범위가 있는 ID( { scope: 'my-scope', name: 'my-name' } ) 또는 범위가 없는 ID( { scope: null, name: 'my-scope/my-name' } ). 문자열을 안전하게 구문 분석하는 방법은 다음 섹션을 참조하십시오.

Bit ID 문자열을 BitId 인스턴스로 변환하는 방법

여기서 고려해야 할 세 가지 경우가 있습니다. 이 순서대로 전략을 사용하십시오.

ID에 범위가 있는지 여부를 알고 있습니다.

새 구성 요소를 추가할 때 ID에 범위 이름이 없다는 것을 알고 있습니다. 반면에 베어 스코프에서 내보낸 구성 요소를 가져올 때 ID에 스코프 이름이 있다는 것을 알고 있습니다.

BitId.parse BitId.parse(id: BitIdStr, hasScope: boolean = true): BitId

소비자 인스턴스가 있습니다.

ID가 있어야 함을 알고 없을 때 예외를 발생시키 려면 Consumer.getParsedId(id: BitIdStr): BitId 또는 Consumer.getParsedIdIfExist(id: BitIdStr): BitId | null | undefined 구성 요소가 있는지 확실하지 않은 경우 정의되지 않습니다.

범위 인스턴스가 있습니다.

Scope.getParsedId(id: BitIdStr): Promise<BitId> 를 사용 하세요. 세 가지 중 가장 비싼 호출이므로 다른 두 가지가 옵션이 아닌 경우에만 사용하십시오.