簡體   English   中英

“類型錯誤: <class> 不是構造函數”,將其導出到npm包的index.js中

[英]“TypeError: <class> is not a constructor” after exporting it in index.js at npm package

我創建了npm軟件包tcx-file-class ,該軟件包以我以后要分析數據的方式處理tcx文件。 因此,它(除其他外)創建了一個Activity類。

通過以下方式從包中的index.ts文件中導出的活動類:

import TcxFile from "./dist/classes/tcxFile"
import Activity from "./dist/classes/activity"
//other imports here

export { TcxFile, Activity,
       //other classes 
       }

因此,當我嘗試從包索引文件中導入類時,如下所示:

import {Activity} from 'tcx-file-class'

const a = new Activity();

我收到以下錯誤:

const a = new tcx_file_class_1.Activity();
      ^

TypeError: tcx_file_class_1.Activity is not a constructor
at Object.<anonymous> (/Users/stratis/Desktop/development/production/ts/events/dist/index.js:11:11)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:719:10)
at startup (internal/bootstrap/node.js:228:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:575:3)

但是當我從包類文件中導入類時,如下所示:

import {Activity} from '../node_modules/tcx-file-class/dist/classes/activity'

const a = new Activity();

一切正常。

因此,我猜想導出過程是問題所在,但我無法發現錯誤。 有什么建議么?

在我看來(正如評論中的SomePerformance所指出的那樣),您正在將Activity導出為命名的導出,例如

export { Activity }而不export default Activity

您將需要將index.ts文件的導入更改為

import {TcxFile} from "./dist/classes/tcxFile"
import {Activity} from "./dist/classes/activity"

才能使用命名的導入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM