Angular` @ Input()`类型在运行时是`undefined`

时间:2018-05-03 06:44:56

标签: javascript typescript angular-cli

我有一个Angular组件,我将type添加到带有namespace的Input属性,如下面的代码。 @Input() size: AMap.Size

AMapnamespace,类Size是in。IDE和typescript编译器运行良好。但是,它在浏览器中不起作用。并抛出错误 Uncaught ReferenceError: AMap is not defined 我找到了编译后的代码

enter image description here

为什么类型会编译成代码?

AMap类型如下

declare namespace AMap {

    export class Size {}

}

谢谢

2 个答案:

答案 0 :(得分:0)

我有类似的问题。我认为这与Typescript,webpack捆绑问题有关。你能尝试使用:

export module AMap {
   export class Size {...}
}

而不是export namespace。 然后导入它并在组件中使用,如:

import { AMap } from './../..';

答案 1 :(得分:0)

对我有用的是在文件顶部使用类型别名,然后使用它。

type ASize = AMap.Size

...

@Input() size: ASize

我知道这只是一种解决方法,但也许对某人有用。