我在尝试构建 Angular 库时遇到了
Error TS2339: Property 'customFunction' does not exist on type 'Window & typeof globalThis'.
。
我正在尝试在新生成的库中添加 .d.ts 文件,但在构建过程中仍然遇到问题。我在这里尝试了多个问题的解决方案,但仍然遇到了问题。
这是我的复制步骤:
首先我生成了新的工作区:
ng new test-workspace --create-application=false
然后,在工作区中,我生成一个新的 Angular 库
cd test-workspace
ng generate library lib-test
之后,我在lib-test/src/types下的lib-test中生成了一个目录。
然后,我创建了一个包含以下内容的文件 window.d.ts
declare global {
interface Window {
customFunction: {
startService: (arg: string) => void;
endService: (arg: string) => void;
}
}
}
export {};
之后,我使用lib-test.service.ts中的自定义属性调用window
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class LibTestService {
constructor() {
window.customFunction.startService("test");
}
}
在 VSCode 上,没有任何错误
Property 'customFunction' does not exist on type 'Window & typeof globalThis'.
。但是在 ng build lib-test 过程中,我遇到了这个错误。
有人可以帮忙指出我是否缺少实现此 customFunction 的任何步骤吗?
要修复编译错误,请将声明文件包含在您的
tsconfig.lib.json
中:
{
"include": [
"src/**/*.d.ts"
]
}