【问题标题】:how to have a class and superclass in two files (Typescript)如何在两个文件中有一个类和超类(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'
  • 这些看起来很有帮助。添加答案,以便我接受!

标签: class module typescript require


【解决方案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'; 

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 2011-10-30
    • 2013-06-19
    • 2018-06-11
    • 2011-08-18
    • 2015-08-31
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    相关资源
    最近更新 更多