我刚刚开始使用打字稿并尝试创建打字稿类的实例,但我没有成功。
以下是我的文件
应用程序.ts
import { EventEmitter } from 'events';
interface Emitter extends EventEmitter {
}
class App {
constructor(protected app: Emitter){}
}
export default = App;
我正在使用
App.js
命令将 App.ts 生成到 tsc
文件。文件在 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 的对象的导出。
您可以通过两种方法解决:
const App = require("./dist/App).default;
compilerOptions
tsconfig.json
中的 allowSyntheticDefaultImports: false
文件。你导出App的方式不对,像这样导出
export default class App {
constructor(protected app: App){}
}
就我而言,这是因为文件与类同名。
即。
class MyThing {}
在名为 MyThing.ts
的文件中定义。
将文件重命名为
mything.ts
解决了问题。
希望这对某人有帮助。
Esto puede ser si usan typescript y usan script en su html, deben agregarlo al html y por eso generic error