Angular找不到名称';光子';在第一次编译时,在重新编译时找到它
我正在一个electron+angular应用程序中使用的是的javascript库 我在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命令(在此之前工作过
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;
...