2017-09-27 2 views
0

아래의 코드를 사용하여 USB 포트에 연결된 장치를 볼 수 있습니다. 명령 프롬프트에서 'ng serve'명령을 실행할 때 컴파일 타임에 "속성 usb가 유형 네비게이터에 없습니다"오류가 발생합니다.속성 "usb"가 angular2 typescript 프로젝트의 "Navigator"유형에 존재하지 않습니다.

interface Navigator { 
    usb: { 
     getDevices(): any[]; 
    } 
} 

이것은 컴파일 시간 오류를 해결합니다 (그러나 런타임 오류가 발생합니다 :

당신이 navigator.usb가 있는지 확인하는 경우
ngOnInit() { 
    async() => { 
     let devices = await navigator.usb.getDevices(); 
     devices.forEach(device => { 
      // Add |device| to the UI. 
      console.log(device); 
     }); 
    } 
} 

답변

1

, 당신은 그것에 대한 어떤 종류의 정보를 포함하도록 인터페이스를 확장 할 수 있습니다 usb이없는 경우).

인터페이스는 동일한 공통 루트에 배치 할 필요가 ... 그래서 당신은 모듈 내에있는 경우, 당신은 사용해야 할 수도 있습니다 :

declare global { 
    interface Navigator { 
     usb: { 
      getDevices(): any[]; 
     } 
    } 
} 
관련 문제