这是一个很大的代码库,所以我只是在寻找一般指针。
在一个文件中,函数采用参数a:MyClass
。
在运行时,typeof a.b
会产生string
。
在VSCode中,我在b
的{{1}}上点击F12,然后(正确地,通过import语句判断)到另一个文件:
a.b
在export class MyClass {
...
b: string[]; // brought to this line
}
的TypeScript环境中如何才能成为a.b
而不是string
,就像类声明所说的那样?我应该寻找什么可能导致这种行为?
答案 0 :(得分:5)
TypeScript中的类型声明仅是提示性的。因为TypeScript被转换为纯JavaScript,所以它无法保证变量的实际内容。
即使在TypeScript中,在变量中放置不同类型的对象也相当容易:
let myClass = new MyClass();
myClass.b = "I'm a string placed into a string array" as any;
注意最后一行末尾的as any
,这会从表达式中删除类型信息,并允许将其放入任何类型的变量或参数中。