【问题标题】:TypeScript DefinitelyTyped Ember.js d.ts doesn't compileTypeScript DefinitiveTyped Ember.js d.ts 无法编译
【发布时间】:2012-11-06 22:25:21
【问题描述】:

我正在尝试获取 Ember.js 库的定义以使用 TypeScript。每当我尝试引用 ember-1.0.d.ts 文件时,我都会收到 43 个错误实例:

The name 'Ember' does not exist in the current scope.

我正在使用安装了 TypeScript 和 Web Essentials 包的 Visual Studio 2012,我想这可能是我自己的配置有问题我试图从 DefinitiveType 项目加载不同的 .d.ts。我试图引用 Angular.js 定义文件,它没有给我任何错误,所以我假设定义文件有问题。

https://github.com/borisyankov/DefinitelyTyped/blob/master/Definitions/ember-1.0.d.ts

此错误的原因可能是什么?

这是给我错误的部分之一,Ember.* 部分被标记为错误:

export interface Enumerable extends Mixin {
    // Fields
    firstObject: Object;
    hasEnumerableObservers: bool;
    lastObject: Object;
    nextObject: Object;

    // Methods
    addEnumerableObserver(target, opts);
    compact(): any[];
    contains(obj: Object): bool;
    enumerableContentDidChange(removing: number, adding: number): Object;
    enumerableContentDidChange(removing: Ember.Enumerable, adding: Ember.Enumerable): Object;
    enumerableContentDidChange(start: Number, removing: number, adding: number): Object;
    enumerableContentDidChange(start: Number, removing: Ember.Enumerable, adding: Ember.Enumerable): Object;

    enumerableContentWillChange(removing: number, adding: number): Ember.Enumerable;
    enumerableContentWillChange(removing: Ember.Enumerable, adding: Ember.Enumerable): Ember.Enumerable;
    enumerableContentWillChange(start: Number, removing: number, adding: number): Ember.Enumerable;
    enumerableContentWillChange(start: Number, removing: Ember.Enumerable, adding: Ember.Enumerable): Ember.Enumerable;

    every(callback: Function, target?: Object): bool;
    everyProperty(key: string, value?: string): any[];
    filter(callback: Function, target?: Object): any[];
    filterProperty(key: string, value?: string): any[];
    find(callback: Function, target?: Object): Object;
    findProperty(key: string, value?: string): Object;
    /*forEach
    getEach
    invoke
    map
    mapProperty
    reduce
    removeEnumerableObserver
    setEach
    some
    someProperty
    toArray
    uniq
    without*/
}

【问题讨论】:

    标签: visual-studio-2012 ember.js typescript


    【解决方案1】:

    我在 Visual Studio 中进行了两项更改以使其正常工作。

    在声明中我改变了:

    declare module "Ember" {
    

    declare module Ember {
    

    在你的界面中我改变了:

    interface Enumerable extends Mixin {
    

    interface Enumerable extends Ember.Mixin {
    

    在此之后,所有警告都消失了。

    【讨论】:

    • 谢谢。删除引号后,所有错误似乎都消失了。即使不必将 Ember.Mixin 添加到接口 Enumerable 扩展。有什么理由也要添加吗?
    • Ember 模块中的一些对象可能存在名称冲突,例如 Ember.Object 可能会被误认为是全局 Object
    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 2016-12-13
    • 2016-07-06
    • 1970-01-01
    • 2017-01-20
    • 2018-04-05
    • 2017-12-09
    • 2021-01-13
    相关资源
    最近更新 更多