在我的定义文件 (.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
文件可能包含来自其他文件的类型声明的导入语句,这些语句通常是从项目导入的相对模块。它们仅在编译时起作用,因为类型在运行时被擦除。