1

我已经开始为 Ember.js 框架制作 TypeScript 定义。我目前已将其设置为如下结构:

declare module Ember {
   interface Classname {
     someProperty: type;
   }
 declare var Classname: Classname;
}

为了访问这些接口,我声明了一个变量。但是在我的库中有一个名为 Object 的类名,这会导致与全局范围内的 Object 发生名称冲突。

我如何超越这个名字冲突?我是否使用正确的做法为现有库创建定义?

4

1 回答 1

2

您可能想从 GitHub 获取 EmberJS 定义文件:

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

这不仅解决了您的问题,因为它具有 Ember 定义,而且您还可以看到尽管名称冲突,他们是如何实现它的:

declare module Ember {

    export class Object extends CoreObject {
        //...

这使得 Object 成为 Ember 的子代,而不是 window 的子代:

Ember.Object

而不是

window.Object
// or the shorthand
Object // which is window.Object
于 2012-11-26T14:14:55.213 回答