如何在两个文件中有一个类和超类(Typescript)
Posted
技术标签:
【中文标题】如何在两个文件中有一个类和超类(Typescript)【英文标题】:how to have a class and superclass in two files (Typescript) 【发布时间】:2016-06-14 23:59:00 【问题描述】:如何在 TypeScript 中将一个类 + 子类拆分为两个文件?
// MongoModel.js
class MongoModel
...
export = MongoModel;
然后在另一个文件中:
import MongoModel = require("./MongoModel");
但这会报错File ....MongoModel.ts is not a module
我是否需要使用一些模块语法将它们捆绑在一起,比如 Java 包?
【问题讨论】:
您是否在编译器选项中使用es6
目标?如果是这样,您必须像这样导出:export class MongoModel ...
并删除 export=MongoModel
。你可以这样导入它:import MongoModel from './MongoModel'
或者您可以使用:export default class MongoModel ...
并导入它:import MongoModel from './MongoModel'
。像这样,您可以在导入时重命名该类,例如import BaseMongoModel from './MongoModel'
这些看起来很有帮助。添加答案,以便我接受!
【参考方案1】:
当您在编译器配置中定位 es5
时,您用于导出和导入模块的版本有效。
定位es6
时,您有以下方式导出/导入模块:
// in MongoClass.ts
export class MongoClass
// ... code here
// and in other file
import MongoClass from '/path/to/MongoClass';
或者你可以使用default export
;
// in MongoClass.ts
export default class MongoClass ...
export const somethingElse = 5;
// and import in some other file
// note that MongoClass can be renamed when is exported as default exported member
import BaseMongo from '/path/to/MongoClass';
// this cannot be renamed when importing
import somethingElse from '/path/to/MongoClass';
【讨论】:
以上是关于如何在两个文件中有一个类和超类(Typescript)的主要内容,如果未能解决你的问题,请参考以下文章