绝对类型的 log4javascript 缺少模块声明

Posted

技术标签:

【中文标题】绝对类型的 log4javascript 缺少模块声明【英文标题】:DefinitelyTyped log4javascript missing module declaration 【发布时间】:2016-12-14 08:16:30 【问题描述】:

我很难在我的项目中使用以下类型文件:

https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/log4javascript

显然,该文件缺少模块声明,当我将以下语句放入我的 typescript 文件时,导致 typescript 抱怨找不到模块“log4javascript”:

import * as log4javascript from 'log4javascript';

当我手动编辑通过运行命令安装的 index.d.ts 文件时

typings install dt~log4javascript --global --save

我添加了这个模块声明:

declare module "log4javascript" import test = log4javascript; export = test;

在文件末尾,编译器不再抱怨,我的代码甚至可以在不使用import * 语句的情况下工作。

那么我应该如何使用类型文件,以便我可以将 log4javascript 与 typescript 一起使用?

更新

我已经设法通过创建一个custom.d.ts 文件来解决这个问题,该文件声明 log4javascript 模块以及生成的类型的根 index.d.ts 并在我的 main.ts 文件中添加了一个 ///<reference path="..." /> 语句,供 requirejs 使用. 我仍然觉得这不是正确的做法,但目前可行。

【问题讨论】:

【参考方案1】:

我设法通过创建一个custom.d.ts 文件来解决这个问题,该文件声明 log4javascript 模块以及生成的类型的根 index.d.ts,并在我的 main.ts 文件中添加了一个 ///<reference path="..." /> 语句,供 requirejs 使用. 我仍然不觉得这是正确的做法,但它现在有效。

【讨论】:

以上是关于绝对类型的 log4javascript 缺少模块声明的主要内容,如果未能解决你的问题,请参考以下文章

Log4JavaScript 服务器端接收

log4javascript 是不是容易受到 Apache Log4j(Java 日志库)远程代码执行 CVE-2021-44228 的攻击?

1.模块2.循环导入问题及解决思路3.区分py文件的两种类型4.模块的查找顺序5.模块的绝对导入与相对导入6.项目开发的目录规范

MySQL 排序规则类型是不是需要匹配 PHP 页面字符集类型?

[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切

[翻译]Go与C#对比 第三篇:编译运行时类型系统模块和其它的一切