TypeScript 定义文件可以有 require 语句吗?



在我的定义文件 (.d.ts( 中拥有这样的语句是否合法......

import foo = require('some-module/bar');

我认为这会立即将我的定义文件变成一个模块。 但是,如果我没有打开strict模式,此代码也对我有用。 如果重要的话,这是TypeScript版本3.7.5。

我的猜测是,您将TSimport = require()与Node.JS的require函数混淆了。

前者是 TS 用来提供 CommonJS 模块导入的特殊导入表示法,附带来自依赖端的export =,可用于.d.ts文件。

后者是全局 Node.JSrequire函数,其类型通过@types/node获得。您确实无法将其放在.d.ts文件中,因为在环境上下文中不允许使用语句。

通常,.d.ts文件可能包含来自其他文件的类型声明的导入语句,这些语句通常是从项目导入的相对模块。它们仅在编译时起作用,因为类型在运行时被擦除。

最新更新