Typescript 导入默认名称空间-为什么我会得到;未定义的“;?

Typescript 导入默认名称空间-为什么我会得到;未定义的“;?,typescript,cocoscreator,Typescript,Cocoscreator,我试着学习打字脚本-迈出一些第一步:)。这是我的问题 我创建了File1.ts,如下所示: export namespace ex { export var mapper = ( ob : Object ) : NewClass { return ob as NewClass; }; export class NewClass extends Object { public getSomething() : number {

我试着学习打字脚本-迈出一些第一步:)。这是我的问题

我创建了File1.ts,如下所示:

export namespace ex {
    export var mapper = ( ob : Object ) : NewClass {
        return ob as NewClass;
    };

    export class NewClass extends Object {
        public getSomething() : number {
            return 2;
        }
    };
}
然后,我创建了File2.ts,它使用第一个文件中定义的“映射器”:

import { ex } from './Ex';

var a : Object = myAlreadyExistingObject;
console.log( ex.mapper( a ).getSomething() );

我得到的是:

错误:TypeError:File1\u 1.ex.mapper(a)。getSomething不是函数。

“Object”类只是一个例子——实际上我使用的是一个已经定义的复杂类。我试图实现的是像C#中那样使用“扩展方法”:
ex.mapper(instance.newFunction()

为什么不起作用

return ob as NewClass;

TypeScript中的类型断言不会导致运行时更改。如果
ob
之前没有
getSomething
方法,则此函数的返回值也不会,您将得到描述的错误。

忘记添加-错误表示它“不是函数,但未定义”