eri*_*ola 6 typescript angular angular-library angular11
不久前,我创建了两个简单的文件来扩展某些类型的功能。我global.d.ts用这种方式创建了一个:
export { }
declare global {
interface Date {
isLeapYear() : boolean;
}
interface Array<T> {
contains(item: T, compareFunc?: (value: T) => boolean): boolean;
sum(callbackfn: (value: T) => number) : number;
}
interface Element {
closest(selector: string) : Element;
}
interface String {
contains(text: string) : boolean;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我extensions.ts在原型上创建了文件和实现。我将其导入到我的polyfills.ts:
import "zone.js/dist/zone";
import "./extensions";
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以在代码中的任何地方使用这些方法。现在我需要在 Angular 11 库中做同样的事情。我创建了global.d.ts和extensions.ts,但是现在呢?没有polyfills.ts文件,如果我尝试进行简单的导入,而我需要其中一种方法 ( import "../../extensions";),则不起作用。在控制台中我收到此错误:
projects/test_library/src/components/test.component/test.component.ts:428:48 - error TS2339: Property 'isLeapYear' does not exist on type 'Date'.
428 return new Date(value).isLeapYear();
~~~~~~~~~~~~~~~~~
projects/test_library/extensions.ts:2:20 - error TS2339: Property 'isLeapYear' does not exist on type 'Date'.
2 Date.prototype.isLeapYear= function () : string {
Run Code Online (Sandbox Code Playgroud)
如何在全球范围内导入我的扩展?为什么我extensions.ts在其他项目中工作正常时却收到 TS2339 错误?
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |