我已经开始为Ember.js框架制作TypeScript定义。我目前的设置结构如下:
declare module Ember {
interface Classname {
someProperty: type;
}
declare var Classname: Classname;
}
为了访问这些接口,我声明了一个变量。但是在我的库中有一个名为Object的类名,这会导致带有全局范围的Object的名称缩放。
如何超越此名称标签?我是否使用正确的做法为现有库创建定义?
答案 0 :(得分: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的孩子,而不是窗口的孩子:
Ember.Object
而不是
window.Object
// or the shorthand
Object // which is window.Object