我有这个对象:
export class Section{
singleLabel:string;
pluralLabel:string;
index:number;
dataInterface:Interface;
}
我需要为字段dataInterface分配一个接口,因为在某些组件/服务中,我必须使用Section对象来确定我必须传递给此方法的接口类型:
httpClient.get<section.dataInterface>(url);
这是我应该分配给字段的接口之一dataInterface:
export interface Idata {
numeroPagina:number;
numeroElementiPerPagina:number;
numeroTotaleElementi:number;
}
我需要做这样的事情:
section.dataInterface = Idata;
httpClient.get<section.dataInterface>(url);
有没有一种方法可以将接口放入对象字段中?谢谢
答案是否定的,不能将接口用作值。接口未编译为javascript,在运行时不可用:
接口只包含方法和字段的声明,而不包含实现。我们不能用它来建造任何东西。
当Typescript编译器将其编译为JavaScript时接口将从JavaScript文件中删除。因此,其目的只是在开发阶段提供帮助。
链接
如果我没有错的话,您想要做的是使用嵌套接口using interface。以下是实现。可以使用括号表示法访问嵌套接口。
// type declarations
interface Idata {
numeroPagina: number;
numeroElementiPerPagina: number;
numeroTotaleElementi: number;
}
interface ISection {
singleLabel: string;
pluralLabel: string;
index: number;
dataInterface: Idata;
}
// implementation
httpClient.get<ISection["dataInterface"]>(url);
export class Section implements ISection {}