2

TypeScript를 사용하여 새 각도 지시문을 만들려고 할 때 문제가 발생합니다. 문제는 지시문에서 격리 범위를 사용할 계획 인 경우에만 발생합니다. 다음은 내가 뭐하는 거지입니다 :지시문에서 TypeScript 및 각도 1로 분리 범위

module Foo.Layout { 
    "use strict"; 
    class SidebarDirective implements ng.IDirective { 

     templateUrl = "/layout/sidebar/sidebar.html"; 
     restrict = "E"; 
     controller = SidebarController; 
     scope = { 
      align: "@" 
     } 

     static factory() { 
      var instance =() => { 
       return new SidebarDirective(); 
      } 
      return instance; 
     }  
    } 
    angular.module("app.layout").directive("fooSidebar", SidebarDirective.factory()); 
} 

문제는 그렇지 않으면 scope = {...} 문을 추가 할 때 잘 컴파일 발생합니다. 아래는 오류입니다.

오류 TS2420 클래스 'SidebarDirective'가 인터페이스 'IDirective'를 잘못 구현합니다. '범위'속성 유형이 호환되지 않습니다. 유형 '{orientation : string; } '형식에 할당 할 수 없습니다'부울 | {[boundProperty : string] : 문자열; } '. 인덱스 서명이 '{orientation : string; } '

그리고 네 ng.IDirective

내 지시에 분리 범위를 만들 수있는 이상적인 방법은 무엇입니까 타입 scope?: boolean | {[boundProperty: string]: string};의 범위 속성이 내 typings에서?

답변

0

당신이

scope = { 
      align: "=" 
     } 
+0

그래으로 시도 해 봤나하고 :(작동하지 않았다 – snippetkid

+0

가 당신에게 컴파일 (타이프)의 오류를주고 (나는 angularjs.TypeScript.DefinitelyTyped 버전 6.5.5을 사용하고 있습니다)? –

+0

예 컴파일 중 오류가 발생합니다. – snippetkid