你能在 Typescript 中自己导出一个接口吗?

Can you export an interface by itself in Typescript?

我有这个代码

IDatabaseModel.ts

export interface IDatabaseModel {}

IDatabaseModels.ts

const IDatabaseModel = require('./IDatabaseModel');

export interface IDatabaseModels {
    currencies : IDatabaseModel;        
}

编译时出现错误

IDatabaseModels.ts: error TS2304: Cannot find name 'IDatabaseModel'.

看起来我上面的 require 语法需要默认导出。

我可以像这样将导入更改为 ES6:

import {IDatabaseModel} from './IDatabaseModel';

如果文件仅包含类型声明而没有实际代码,则它可能应该是可以使用引用语法导入的类型声明文件 (.d.ts)。

IDatabaseModel.d.ts

 interface IDatabaseModel {}

IDatabaseModels.ts

/// <reference path="./IDatabaseModel.d.ts" />
export interface IDatabaseModels {
    currencies : IDatabaseModel;        
}

在 TypeScript 中导出接口并不违法。

您已经在示例中这样做了。

虽然如果你想导出接口以在不同的应用程序中重用(单独编译)。然后您将需要为该库创建一个特定的模块并指定 package.jsontypings 属性.