![](/img/trans.png)
[英]Angular 2 / Typescript - TypeError: ClassName is not a constructor
[英]TypeScript: TypeError: App is not a constructor
我剛開始使用打字稿並嘗試為打字稿類創建一個實例,但我沒有成功。
下面是我的文件
應用程序
import { EventEmitter } from 'events';
interface Emitter extends EventEmitter {
}
class App {
constructor(protected app: Emitter){}
}
export default = App;
我正在使用tsc
命令將App.js
生成到App.js
文件。 該文件在 dist 文件夾中生成為App.js
我有另一個名為 Test.js 的文件
在 Test.js 中,我正在導入生成的 App.js 文件並為其創建一個實例,如下所示,但出現以下錯誤
類型錯誤:應用程序不是構造函數
測試.js
const App = require("./dist/App);
module.exports = function(app){
const appInstance = new App(app)
}
我不明白為什么會拋出這樣的錯誤,盡管我在 App.ts 文件中有可用的構造函數。
我在 App.ts 文件中做錯了什么,這就是我收到上述錯誤的原因嗎?
我該如何解決這個問題?
Typescript 編譯export default = App;
作為具有屬性default的 Object 的導出。
你可以用兩種方法解決這個問題:
const App = require("./dist/App).default;
tsconfig.json
文件allowSyntheticDefaultImports: false
。你以錯誤的方式導出了應用程序,像這樣導出
export default class App {
constructor(protected app: App){}
}
就我而言,這是因為文件與類同名。
IE。 class MyThing {}
在名為MyThing.ts
的文件中定義。
將文件重命名為mything.ts
解決了這個問題。
希望這可以幫助某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.