导入默认命名空间 - 为什么我得到 "undefined"?
Importing a default namespace - why am I getting "undefined"?
我尝试学习打字稿 - 迈出第一步 :)。这是我的问题。
我创建了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,它使用第一个文件中定义的 "mapper":
import { ex } from './Ex';
var a : Object = myAlreadyExistingObject;
console.log( ex.mapper( a ).getSomething() );
我得到的:
错误:类型错误:File1_1.ex.mapper(a).getSomething 不是函数。
"Object" class 只是一个例子——实际上我使用的是一个已经定义的复杂 class。我想要实现的是像在 C# 中那样使用 "extension methods",像这样使用它:ex.mapper( instance ).newFunction()
为什么不起作用?
return ob as NewClass;
TypeScript 中的类型断言不会导致运行时更改。如果 ob
之前没有 getSomething
方法,那么此函数的 return 值也不会,您将得到描述的错误。
我尝试学习打字稿 - 迈出第一步 :)。这是我的问题。
我创建了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,它使用第一个文件中定义的 "mapper":
import { ex } from './Ex';
var a : Object = myAlreadyExistingObject;
console.log( ex.mapper( a ).getSomething() );
我得到的:
错误:类型错误:File1_1.ex.mapper(a).getSomething 不是函数。
"Object" class 只是一个例子——实际上我使用的是一个已经定义的复杂 class。我想要实现的是像在 C# 中那样使用 "extension methods",像这样使用它:ex.mapper( instance ).newFunction()
为什么不起作用?
return ob as NewClass;
TypeScript 中的类型断言不会导致运行时更改。如果 ob
之前没有 getSomething
方法,那么此函数的 return 值也不会,您将得到描述的错误。