Ale*_*lls 3 node.js typescript typescript2.0
我看到这个神秘的 TypeScript 错误:
TS4023:导出的变量具有或使用外部模块“stream”中的名称“internal.Transform”,但无法命名。
有谁知道这实际上意味着什么?
我在 Github 上看到这个问题,试图破译它: https ://github.com/Microsoft/TypeScript/issues/5711
Typescript 无法显式命名getTapJSONParser此方法向外界公开的任何内容的类型。造成这种情况的原因有两个:要么您没有包含其定义,internal.Transform要么该定义被本地定义隐藏。在您的示例中,两种可能性中的第一种很可能会给您带来麻烦。
现在,在错误消息中,打字稿似乎正确确定了类型,为什么它仍然发出错误消息?为了导出任何内容,typecipt 需要能够直接引用类型。它基本上知道它想要使用哪种类型,但只是无法引用它,因为它没有添加任何额外的导入语句。这意味着,如果添加类型定义添加未导入的类型,则命名会失败,从而导致此错误消息。考虑这个问题的一个更简单的方法是:如果您手动将类型定义添加到导出的内容中,是否会导致错误,因为您没有显式导入您使用的类型定义?如果是,即使您希望打字稿确定类型,您也需要添加这些导入。
首先,验证您没有任何类型的影子internal.Transform。如果情况并非如此,import { Transform } from "stream";(或者仅导入流导出的所有内容,如果您使用的不仅仅是 ,可能会更容易Transform)。
| 归档时间: |
|
| 查看次数: |
4452 次 |
| 最近记录: |