尝试使用TypeScript创建新的angular指令时,我遇到了问题。只有在我计划在指令中使用隔离范围时才会出现此问题。以下是我正在做的事情:
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; }'不能赋值为'boolean | {[boundProperty:string]:string; }”。 类型'{orientation:string; }“
是的,我的打字ng.IDirective
的范围属性为scope?: boolean | {[boundProperty: string]: string};
在我的指令中创建隔离范围的理想方法是什么? (我使用的是angularjs.TypeScript.DefinitelyTyped版本6.5.5)
答案 0 :(得分:0)
你试过
吗?scope = {
align: "="
}