我最近一直在使用TypeScript 1.4,并且正在尝试通过type
关键字了解类型别名的正确用法。要添加一些上下文,我有一堆这样构造的TypeScript文件:
module A.B.C {
export class MyClass {
// ...
}
}
为了避免不得不使用var thing:A.B.C.MyClass
,我一直在尝试以type
各种方式使用关键字,每种方式都有自己的问题:
我所做的第一次尝试是将这些语句放置在文件顶部的module
语句上方:
type MyClass = A.B.C.MyClass;
module D.E {
// Yada yada.
}
但是,一旦我在另一个文件中执行了此操作,编译器就不希望我在两个文件中有两次相同的语句。
我的下一个想法是将语句放入模块定义中:
module D.E {
type MyClass = A.B.C.MyClass;
// ...
}
这在一段时间内效果很好,但是当我尝试为new MyClass
类成员分配a时遇到了歧义错误。例如:
module D.E {
type MyClass = A.B.C.MyClass;
export class AnotherClass {
private thing:MyClass;
constructor() {
this.thing = new MyClass(); // Error is here.
}
}
}
结果是:
分配的表达式类型
D.E.MyClass
不能分配给typeA.B.C.MyClass
显然,我完全是错误地对待这种方法。实现我要做什么的正确方法是什么?我怀疑我的第一个尝试更接近于更正,并且那些type
语句仅属于某个位置的单个文件?
但是,一旦我在另一个文件中执行了此操作,编译器就不希望我在两个文件中有两次相同的语句。
那就不要做两次。只需在类似的地方做一次globals.ts
顺便说一句:我建议您不要使用内部模块(这是为什么),我建议您不要使用外部模块:https : //www.youtube.com/watch?v=KDrWLMUY0R0
不要type
将您要在代码中使用的东西使用。使用type
仅用于将是在东西type annotation
声明空间。
要为类加上别名,您将需要使用var
。如下所示:
module a.b {
export class Foo {
constructor(a, b) {
}
}
}
var Bar = a.b.Foo;
var b = new Bar(1, 2);
再次提醒您使用的危害--out
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句