如何在带有接口的 Typescript 中声明公共和私有变量?
Posted
技术标签:
【中文标题】如何在带有接口的 Typescript 中声明公共和私有变量?【英文标题】:How can I declare public and private variables in Typescript with interfaces? 【发布时间】:2014-09-07 19:48:56 【问题描述】:我有以下代码:
interface IEnumElement
elem: string;
text: string;
val: number
interface IIndexable<T>
[index: string]: T;
class AdminBase
ExamStatusId: IIndexable<IEnumElement> =
All:
elem: "",
text: 'Exam Status: All',
val: 0
,
Current:
elem: "asdf",
text: 'Exam Status: Current',
val: 1
这给了我一个错误提示:
Error 5 Public property 'ExamStatusId' of exported class has or is
using private type 'IEnumElement'. C:\Protractor\Latest\TypeScript1.ts
【问题讨论】:
【参考方案1】:我想问题出现了,一旦你开始导出 AdminBase 类。正如这里很好地解释的那样:
Why does Typescript use the keyword "export" to make classes and interfaces public?我们要做的,就是导出接口
export interface IEnumElement
elem: string;
text: string;
val: number
export interface IIndexable<T>
[index: string]: T;
export class AdminBase
ExamStatusId: IIndexable<IEnumElement> =
All:
elem: "",
text: 'Exam Status: All',
val: 0
,
Current:
elem: "asdf",
text: 'Exam Status: Current',
val: 1
【讨论】:
以上是关于如何在带有接口的 Typescript 中声明公共和私有变量?的主要内容,如果未能解决你的问题,请参考以下文章
(如何)我应该在 Vue.js 组件(TypeScript)中使用访问修饰符(公共、私有等)吗?
如何在 Vue Router v4 中为自定义元字段声明 TypeScript 类型接口?