“类型”语句的正确位置在哪里?

马蒂

我最近一直在使用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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

glEnableVertexAttribArray的正确位置在哪里

来自分类Dev

启用CORS的正确位置在哪里?

来自分类Dev

在哪里注册听众的正确位置

来自分类Dev

配置APP名称的正确位置在哪里?

来自分类Dev

注释处理的正确位置在哪里?

来自分类Dev

在Ruby on Rails中查找文本的正确位置在哪里

来自分类Dev

在SpriteKit中配置SKScene内容的正确位置在哪里?

来自分类Dev

保持样式与指令关联的正确位置在哪里?

来自分类Dev

在菜单栏中放置onclick的正确位置在哪里

来自分类Dev

在Laravel中放置文件的正确位置在哪里?

来自分类Dev

放置路由器的正确位置在哪里?

来自分类Dev

Inno Setup 中执行这些操作的正确位置在哪里?

来自分类Dev

Mapbox图层的正确类型(打字稿)在哪里?

来自分类Dev

GAC的位置在哪里?

来自分类Dev

GAC的位置在哪里?

来自分类Dev

源位置在哪里?

来自分类Dev

文件类型在哪里?

来自分类Dev

SQL Select语句在哪里

来自分类Dev

选择计数在哪里语句

来自分类Dev

我在哪里放置if语句?

来自分类Dev

$ GOPATH的合适位置在哪里?

来自分类Dev

EnvDTE的类型库在哪里?

来自分类Dev

约束类型在哪里定义?

来自分类Dev

酒厂类型在哪里索引?

来自分类Dev

EnvDTE的类型库在哪里?

来自分类Dev

在Magento中存储第三方服务凭据的“正确”位置在哪里?

来自分类Dev

用户视图中美化数据库中值的正确位置在哪里?

来自分类Dev

在OSX中配置我的Apache虚拟主机的正确位置在哪里?

来自分类Dev

将供应商文件放入Cakephp 2.X的正确位置在哪里?