这用于在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 {}; } }
}
在TypeScript 0.9.5中,我得到编译器错误"Class LocalStorage声明接口ILocalStorage但不实现它".
我需要更改什么,以便再次编译?
注意:在此上下文中使用接口的原因是: - 具有实现的类的文档 - 让编译器检查接口是否正确实现.
接口定义了类的实例,而不是类的实例.简而言之,您无法使用静态成员实现它.
由于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 }