这用于在TypeScript 0.9.1.1中编译(方法实现省略):
module MyNodule {
export interface ILocalStorage {
SupportsLocalStorage(): boolean;
SaveData(id: string, obj: any): boolean;
LoadData(id: string): any;
}
export class LocalStorage implements ILocalStorage {
static SupportsLocalStorage(): boolean {
return true;
}
static SaveData(id: string, obj: any): boolean {
return true;
}
static LoadData(id: string): any {
return {};
}
}
Run Code Online (Sandbox Code Playgroud)
}
在TypeScript 0.9.5中,我得到编译器错误"Class LocalStorage声明接口ILocalStorage但不实现它".
我需要更改什么,以便再次编译?
注意:在此上下文中使用接口的原因是: - 具有实现的类的文档 - 让编译器检查接口是否正确实现.
bas*_*rat 16
接口定义了类的实例,而不是类的实例.简而言之,您无法使用静态成员实现它.
由于typeScript是结构类型的,因此您可以将类分配给接口.在这种情况下,类实际上是一个实例:
module MyNodule {
export interface ILocalStorage {
SupportsLocalStorage(): boolean;
SaveData(id: string, obj: any): boolean;
LoadData(id: string): any;
}
export class LocalStorage {
static SupportsLocalStorage(): boolean {
return true;
}
static SaveData(id: string, obj: any): boolean {
return true;
}
static LoadData(id: string): any {
return {};
}
}
var foo : ILocalStorage = LocalStorage; // Will compile fine
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5137 次 |
| 最近记录: |