Я пытаюсь создать новую угловую директиву с использованием TypeScript. Проблема возникает только в том случае, если я планирую использовать область выделения в директиве. Вот что я делаю:Изолировать область действия в директиве с использованием TypeScript и Angular 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». Типы «сфера» собственности несовместимы. Тип '{ориентация: строка; } 'не присваивается type' boolean | {[boundProperty: string]: string; }». Недопустимая подпись индекса в типе '{ориентация: строка; }»
И да в моей типизации ng.IDirective
имеют область видимости свойство типа scope?: boolean | {[boundProperty: string]: string};
Что такое идеальный способ создать изолят области в моей директиве? (Я использую angularjs.TypeScript.DefinitelyTyped версии 6.5.5)
Япом и он не работает :( – snippetkid
это даст вам ошибку в компиляции (машинопись)? –
Да, это дает ошибку при составлении. – snippetkid