我刚刚将我的Typescript定义更新为今天的最新版本。在jssecacerts
中,现在是cacerts
界面中angular.d.ts
的定义:
scope
我的指令是这样定义的(用字母代替实际名称和省略不相关的代码):
IDirective
我收到了这个编译时错误:
错误类' 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:字符串; }'
我不明白为什么我会这样做。每个属性都是一个字符串,这是interface IDirective {
...
scope?: boolean | {[boundProperty: string]: string};
...
}
部分想要的,不是吗?
如何更改范围定义以适应更新的定义?
答案 0 :(得分:1)
我尝试了你的代码并且转换得很好。我会关闭并重启你正在使用的任何IDE,看看这个错误是否消失;当TypeScript错误没有意义时,这似乎对我作为Visual Studio用户非常频繁。
如果这不起作用,请确保将您的TypeScript编译器版本更新为最新版本。
我知道这不是最新的,但这是我正在使用的打字:注册表:dt / angular#1.5.0 + 20161101124950 我的TypeScript版本:2.1.5.0