Typescript:别名一个长模块名

Typescript:别名一个长模块名,typescript,Typescript,我已经查过了,下面是几个问题: 但我还是很困惑。这不是一个“要求”,只是一个愿望。我正在用Typescript使用剑道UI和他们的MVVM架构,我发现自己一直在用打字机打字 class Item extends ItemPrototype { public Quality: kendo.data.ObservableObject = new kendo.data.ObservableObject(); } 是的,这很好,但越来越讨厌了。有没有办法设置打字脚本,让我使用速记?像 class

我已经查过了,下面是几个问题:

但我还是很困惑。这不是一个“要求”,只是一个愿望。我正在用Typescript使用剑道UI和他们的MVVM架构,我发现自己一直在用打字机打字

class Item extends ItemPrototype {
   public Quality: kendo.data.ObservableObject = new kendo.data.ObservableObject();
}
是的,这很好,但越来越讨厌了。有没有办法设置打字脚本,让我使用速记?像

class Item extends ItemPrototype {
   public Quality: observable = new observable();
}

是的,有办法<代码>导入可用于导入模块,也可用于定义类型名称以使其更短。下面是后者的一个例子:

declare module alpha.bravo.charlie {
    export class Delta {
        constructor();
    }
}

import Delta = alpha.bravo.charlie.Delta;
let d: Delta = new Delta();
您还可以通过让类型推断系统执行一些工作来保存键入

let d = new Delta();

从1.4开始,我们可以使用
类型
关键字

随着TypeScript 1.3的推出,我们专注于添加更多的类型 系统和ECMAScript 6的功能与TypeScript兼容。让我们快点 看看你在下一篇文章中可以使用的一些新功能 发布TypeScript。所有这些功能都在主控系统中提供 如果您想查看我们的GitHub存储库,请访问我们的分支 今天你自己

有了这些功能,我们可以更准确、更轻松地使用 在运行时可能具有不同类型的变量和表达式。 总之,这些特性有助于减少对显式类型的需求 注释、类型断言和“any”类型的使用。类型 定义文件(.d.ts)的作者可以使用这些文件更精确地 描述外部库。对于那些遵循 编译器,您会注意到我们已经在 今天是我的生日

有关更多信息,请访问:

例如:

让我们创建一个简单的模型:basemodel.ts

module NameSpace {
    export module Model {
        export class BaseModel {
            public Id: number;
            public Name: string;
        }
    }
}
我们需要在控制器中使用这个模型

/// <reference path="path to base model.ts" />

type BaseModel = NameSpace.Model.BaseModel;

module NameSpace {
    export module Controller {
        export class BaseController  {
            public entities: new Array<BaseModel>();

            constructor(externalEntities: Array<BaseModel>) {
                this.entities = externalEntities;
            }
        }
    }
}
//
类型BaseModel=NameSpace.Model.BaseModel;
模块名称空间{
输出模块控制器{
导出类BaseController{
公共实体:新数组();
构造函数(外部实体:数组){
this.entities=外部实体;
}
}
}
}

类型别名不适用于问题的示例,因为它们只为类型引入新名称,而不是构造函数(
const-Quality:observable
将起作用,
const-Quality=new-observable()
将不起作用)Hello可以与源代码共享示例(gist等)?滚动到顶部,请看问题中给出的示例,并尝试使用类型别名缩短表达式
new kendo.data.observeObject()
。您将发现这是不可能的,因为表达式中的构造函数是函数,并且类型别名不会为值(例如函数)引入新名称,而只为类型引入新名称。在您的示例中,错误位于第二个代码段中的
new BaseModel()
,请访问:。Angularjs 1.4和Typescript之间的实现。请参见示例中的第78行:
const tempButton:SubmitButton=new myteletooch.Entity.DOM.FormElement.SubmitButton.SubmitButton(
。它不能仅用
类型
别名来缩短。我感觉我在和墙说话。注意:当使用动态加载.js的外部源时,可能会出现计时问题,如果(类型)为.js的别名还不是d/l。我希望我能在这个非典型案例的回调中调用一个导入。bing maps v8的例子发生在我身上。