TypeScript Efinite.Typed Ember.js d.ts无法编译 [英] TypeScript DefinitelyTyped Ember.js d.ts doesn't compile

查看:64
本文介绍了TypeScript Efinite.Typed Ember.js d.ts无法编译的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to get definitions for the Ember.js library to work with TypeScript. Whenever I try to reference the ember-1.0.d.ts file I get 43 instances of the error:

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

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

I am using Visual Studio 2012 with TypeScript and the Web Essentials package installed, thinking maybe it was a problem with my own configuration I tried to load a different .d.ts from the DefinitelyType project. I tried to reference the Angular.js definition file and it gives me no errors so I am assuming there is something wrong with the definition file.

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

此错误的原因是什么?

此是错误的部分之一,Ember。*部分被标记为错误:

This is one of the parts that gives me errors, the Ember.* parts are marked as wrong:

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中进行了两项更改以使其正常工作。

I made two changes in Visual Studio to get this working.

在声明中,我进行了更改:

In the declaration I changed:

declare module "Ember" {

declare module Ember {

在您的界面中,我进行了更改:

And in your interface I changed:

interface Enumerable extends Mixin {

interface Enumerable extends Ember.Mixin {

此后所有警告都消失了。

After this all the warnings were gone.

这篇关于TypeScript Efinite.Typed Ember.js d.ts无法编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆