你能在 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'.
- 在Typescript中自行导出一个接口是否违法(引用)?
- 我还可以如何格式化我的代码以使其正常工作?
看起来我上面的 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.json
的 typings
属性.
我有这个代码
IDatabaseModel.ts
export interface IDatabaseModel {}
IDatabaseModels.ts
const IDatabaseModel = require('./IDatabaseModel');
export interface IDatabaseModels {
currencies : IDatabaseModel;
}
编译时出现错误
IDatabaseModels.ts: error TS2304: Cannot find name 'IDatabaseModel'.
- 在Typescript中自行导出一个接口是否违法(引用)?
- 我还可以如何格式化我的代码以使其正常工作?
看起来我上面的 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.json
的 typings
属性.