5

我正在使用angularjsand创建一个应用程序typescript。我正在使用 cookie 来存储有关用户登录和权限等的相同数据。我遇到了 angular-cookies.d.ts 文件的问题。

$cookieStore 工作得很好,但根据AngularJS 文档,该服务已被弃用,所以我尝试使用 $cookies 代替。在编译时使用 $cookies 会导致错误,Property 'put' does not exist因此我检查了定义,在 ICookiesService 接口中确实没有具有此类名称的属性。

declare module "angular-cookies" {
    var _: string;
    export = _;
}

declare module angular.cookies {

    interface ICookiesService {
        [index: string]: any;
    }

    interface ICookieStoreService {
        get(key: string): any;
        put(key: string, value: any): void;
        remove(key: string): void;
    }
}

这种类型定义实际上有错误还是我做错了什么?感谢您的回复。

4

1 回答 1

5

Angular 1.4 的 DefinitiveTyped 定义似乎还没有更新。ICookiesService 接口应该类似于:

interface ICookiesService {
    get(key: string): string;
    getObject(key: string): any;
    getAll(): any;
    put(key: string, value: string, options?: any): void;
    putObject(key: string, value: any, options?: any): void;
    remove(key: string, options?: any): void;
}

将来,您可以随时在 GitHub 上提交拉取请求以更新定义。我现在为此创建了一个。

更新:

上述拉取请求已合并,因此这应该不再是问题。

于 2015-04-27T21:01:48.153 回答