gpt4 book ai didi

npm - 使用外部模块时创建单个 .d.ts 时出现问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:29 27 4
gpt4 key购买 nike

我正在使用 typescript 开发一个 NPM 包。在这个包中,TS 文件被设置为外部模块。编译器不会为外部模块生成单个 .d.ts。我正在尝试将所有 tsc 生成的类型定义连接到整个包的单个 .d.ts 中。

我在布置单个 .d.ts 文件时遇到问题(采用与 grunt-dts-bundle 中使用的方法类似的方法)。下面的浓缩示例捕获了我的问题。

给出这个外部模块声明和测试文件:

test.d.ts :

declare module "ExternalWrapper" {
export import Foo = require("FooModule");
}

declare module "FooModule" {
class Foo {
name: string;
}
export = Foo;
}

test.ts:

import externalWrapper = require( 'ExternalWrapper' );
var t = new externalWrapper.Foo();

运行 tsc test.ts test.d.ts -m commonjs 会产生此错误:TS2083: Invalid 'new' expression.

如果将“test.ts”更改为如下所示,直接导入“FooModule”:

import Foo = require( "FooModule" );
var t = new Foo();

它编译得很好。

编译器理解 externalWrapper.Foo 类型,但它似乎并不将其表示为相同类型 FooModule.Foo。关于编译器如何处理通过“导出导入”导出的模块,我有一些事情没有得到。

如果上述方法失败,我可能会考虑手动创建 .d.ts :(

感谢任何帮助。

最佳答案

您可能缺少 reference 标签:

/// <reference path="test.d.ts"/>

有效:

enter image description here

关于npm - 使用外部模块时创建单个 .d.ts 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26679781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com