Angular找不到名称';光子';在第一次编译时,在重新编译时找到它

Angular找不到名称';光子';在第一次编译时,在重新编译时找到它,angular,lazy-loading,photon,Angular,Lazy Loading,Photon,我正在一个electron+angular应用程序中使用的是的javascript库 我在src/vendor中创建了一个文件夹,其中包含js文件和.d.ts文件。我将主js文件添加到我的angular.json文件夹中的scripts。我将这一行添加到我的typings.d.ts文件中: /// <reference path="./vendor/Photon/Photon-Javascript_SDK.d.ts" /> 当我运行serve命令(在此之前工作过

我正在一个electron+angular应用程序中使用的是的javascript库

我在
src/vendor
中创建了一个文件夹,其中包含js文件和
.d.ts
文件。我将主js文件添加到我的
angular.json
文件夹中的
scripts
。我将这一行添加到我的
typings.d.ts
文件中:

/// <reference path="./vendor/Photon/Photon-Javascript_SDK.d.ts" />
当我运行serve命令(在此之前工作过)时,我得到以下错误:

表示找不到名称空间“Photon”。如果我更改了空格,触发了重新编译,我会得到以下结果:

我可以将其加载到浏览器/电子客户端。如果我终止并重新启动serve命令,它将在第一次编译时失败,并在第二次编译时自行修复

为什么??我怎样才能解决这个问题

我唯一能想到的是第二次编译有更多的块。我使用的是延迟加载,所以可能是在供应商库之前加载服务?但我本以为会首先引入供应商LIB

解决方法: 我已经看到,我现在可以将
//@ts ignore
添加到有问题的行中,它们不再引起问题。。。这似乎很奇怪,它会起作用。我的新理论是,他们提供的
.d.ts
文件在某种程度上是错误的

import LoadBalancingClient = Photon.LoadBalancing.LoadBalancingClient; // errors out here

@Injectable()
export class PhotonMatchMakingService {

  private loadBalancingClient: LoadBalancingClient;
  ...