添加带有模块声明的其他.d.ts文件

时间:2018-11-07 00:05:24

标签: typescript

在将.d.tstsc一起使用时,是否可以包括其他declarations个文件?

我的项目定义如下:

  • package.json定义了"main": "build""typings": "./build/index.d.ts"
  • tsconfig.json定义了"declaration": true"outDir": "build"
  • 具有这些定义和src/index.tsimport X from 'mypackage'有效,并转到build/index.js

我也有src/foo/index.ts,但是由于不想让软件包的用户使用import foo from 'mypackage/build/foo',我在根目录中添加了foo.js

module.exports = require('./build/foo')

现在可以import foo from 'mypackage/foo'

问题是,在使用项目时,它会出错

Could not find a declaration file for module 'mypackage/foo'

我想在.d.ts运行时向构建文件夹中添加一个额外的tscbuild/foo.d.ts包含src/foo/index.ts的声明。

有可能吗?

1 个答案:

答案 0 :(得分:0)

由于TypeScript在mypackage/foo处查找声明文件,因此创建mypackage/build/foo.d.ts将无济于事。您需要创建包含以下内容的mypackage/foo.d.ts

import foo = require('./build/foo');
export = foo;

或使用带有指向mypackage/foo/package.json的{​​{1}}字段的main文件进行重定向(TypeScript将自动添加../build/foo扩展名)。