Typescript 导出扩展的接口
我有一个界面Typescript 导出扩展的接口,typescript,interface,export,Typescript,Interface,Export,我有一个界面Person,我在其中添加了另一个属性(参见下面的示例) 我想导出它,但是我发现错误“Person”只引用一个类型,但在这里被用作一个值。 //test.d.ts 接口人{ 年龄:数字,, 名称:string } 接口人{ canCode:boolean } export Person/=>“Person”仅指类型,但在此处用作值。 //test.ts 从“./test'/=>Module'./test”导入{Person},在本地声明“Person”,但不导出。 const my
Person
,我在其中添加了另一个属性(参见下面的示例)
我想导出它,但是我发现错误“Person”只引用一个类型,但在这里被用作一个值。
//test.d.ts
接口人{
年龄:数字,,
名称:string
}
接口人{
canCode:boolean
}
export Person/=>“Person”仅指类型,但在此处用作值。
//test.ts
从“./test'/=>Module'./test”导入{Person},在本地声明“Person”,但不导出。
const myPerson:Person={
年龄:17岁,
名字:“罗马”,
坎科德:对
}
你能告诉我怎么修吗
附加信息
朗:typescript@4.1.2
编辑:atom@1.53.0
编辑器类型脚本包:atom-typescript@14.1.2
(正在使用typescript@4.0.3
)
我还检查了VSC中的所有代码和建议,结果都是一样的。导出关键字本身需要导出一个值,但正如您所提到的,
Person
只是一个类型
要解决这个问题,只需使用导出接口
export interface Person { ... }
接口(由其名称标识)现在已导出。您可以通过添加来执行进一步的声明合并,例如:
export interface Person { age: number }
interface Person { name: string }
人员将合并在一起,并从模块中导出为单个界面。谢谢您的建议。我不是通过extend扩展接口(创建新接口),而是向同一接口添加属性。如果我在上面示例中显示的每个接口Person之前添加
export
关键字,它将抛出错误Module'./test“'在本地声明'Person',但它不会导出。
。把我的答案按顺序编辑好。我不知道为什么TypeScript抱怨模块在本地声明它,但没有导出它。在TypeScript 4.1.1上,将导出添加到一个或多个项目对我来说很好。请参阅更多:您的TS版本是什么?我仍然无法重新创建,我正在使用以下代码:请参阅更新的帖子的附加信息部分。