2

TypeScript で動作する Ember.js ライブラリの定義を取得しようとしています。ember-1.0.d.ts ファイルを参照しようとすると、43 回のエラーが発生します。

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

TypeScript と Web Essentials パッケージがインストールされた Visual Studio 2012 を使用していますが、自分の構成に問題があるのではないかと考えて、DefiniteType プロジェクトから別の .d.ts を読み込もうとしました。Angular.js 定義ファイルを参照しようとしましたが、エラーが発生しないため、定義ファイルに問題があると推測されます。

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

このエラーの原因は何ですか?

これは私にエラーを与える部分の 1 つです。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*/
}
4

1 に答える 1

1

これを機能させるために、Visual Studio で 2 つの変更を行いました。

私が変更した宣言で:

declare module "Ember" {

declare module Ember {

そしてあなたのインターフェースで私は変更しました:

interface Enumerable extends Mixin {

interface Enumerable extends Ember.Mixin {

この後、すべての警告がなくなりました。

于 2012-11-06T14:25:21.410 に答える