我刚刚将我的Typescript定义更新为今天的最新版本 . 在 angular.d.ts
中,现在是 IDirective
接口中 scope
的定义:
interface IDirective {
...
scope?: boolean | {[boundProperty: string]: string};
...
}
我的指令定义为这样(用字母代替实际名称和省略不相关的代码):
export class MyDirective implements angular.IDirective {
scope = {
a: "&",
b: "@?",
c: "=?",
d: "=?",
e: "@?",
}
}
我收到这个编译时错误:
错误类'MyDirective'错误地实现了接口'IDirective' . 属性“范围”的类型不兼容 . 输入'{a:string; b:字符串; c:字符串; d:字符串; e:字符串; }'不能赋值为'boolean | {[boundProperty:string]:string; }” . 输入'{a:string; b:字符串; c:字符串; d:字符串; e:字符串; }'不能赋值为'{[boundProperty:string]:string; }” . 类型'{a:string;中缺少索引签名; b:字符串; c:字符串; d:字符串; e:字符串; }” .
我没有't understand why I'得到这个 . 每个属性都是一个字符串,这是 { [boundProperty: string]: string; }
部分想要的,不是吗?
如何更改范围定义以适应更新的定义?
1 回答
我尝试了你的代码,它很好 . 我会关闭并重启你正在使用的任何IDE,看看这个错误是否消失;当TypeScript错误没有意义时,这似乎对我作为Visual Studio用户非常频繁 .
如果这不起作用,请确保将您的TypeScript编译器版本更新为最新版本 .
我知道这不是最新的,但这是我正在使用的输入:registry:dt / angular#1.5.0 20161101124950我的TypeScript版本:2.1.5.0