TypeScript 在JS中,module.exports赋值不会使类型可用,

dvtswwa3  于 5个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(81)

代码:

// in a javascript file mod1.js:
class C {
prop = 0;
}

module.exports = { C }

// in a typescript file test.ts
declare var yyy: import("./mod1").C

预期行为:

无错误,且 yyy: C

实际行为:

错误,命名空间 '"src/test/mod1".export=' 没有导出成员 'C'。
module.exports分配的对象字面量应该用SymbolFlags.Namespace标记,或者getTypeFromImportTypeNode可能需要了解非命名空间容器。它可能还需要检查成员而不是导出,因为那是对象字面量存储成员的地方。

y3bcpkx1

y3bcpkx11#

对于module.exports.C = C不起作用,仅适用于module.exports.C = class { prop = 0 }

相关问题