属性apps中angular-cli.json的文件是阵列类型.如果我在这个数组中添加第二个元素,我该如何指示ng build构建这两个元素?
trait Base
trait Plugin { base: Base =>
def asBase: Base & Plugin = this
}
class Mix extends Base, Plugin
val plug: Plugin = new Mix
val baseA: Base= plug.asBase
val baseB: Base = plug // snorts with "Found: Plugin. Required: Base
Run Code Online (Sandbox Code Playgroud)
为什么?如果我是正确的,则遵守里氏替换原则,因为 的所有实例Plugin都是具体类型,该类型是包含 的子类型的混合Base。因此,Base可以用type的对象替换type的对象Plugin,而不影响程序的正确性。
升级到angular-cli@1.6.3并将所有RxJS导入,方法和运算符转换为新的> 5.5表单后,我在运行时遇到类型错误,说这Observable.of不是函数.相同的错误与被定义为扩展的成员的所有方法发生Observable,例如,Observable.fromEvent.
另一方面,定义为独立函数的方法,如Observable.combineLatest运行正常,尽管编译器警告它们在类型上不存在Observable.
只是为了澄清,我对任何操作员都没有问题(在将它们转换为管道形式之后).只有方法.
我找到的解决方案是替换:
import { of } from 'rxjs/observable/of';
import { fromEvent } from 'rxjs/observable/fromEvent';
...
const x = Observable.of(true, false);
const y = Observable.fromEvent(target, 'click');
Run Code Online (Sandbox Code Playgroud)
同
import { ArrayObservable } from 'rxjs/observable/ArrayObservable';
import { FromEventObservable } from 'rxjs/observable/FromEventObservable';
...
const x = ArrayObservable.of(true, false);
const y = FromEventObservable.create(target, 'click');
Run Code Online (Sandbox Code Playgroud)
但我认为这应该是一个更好的方法.我对吗?
笔记:
ng --version 得到:
Angular CLI:1.6.3,节点:8.9.1,操作系统:win32 x64,Angular:5.1.3,
@ angular/cli:1.6.3,@ angular-devkit/build-optimizer:0.0.36,@ …