我已经查了一下,回答以下问题:
但我仍然感到困惑。这不是一个“要求”,只是一种欲望。我在Typescript中使用Kendo UI
和他们的MVVM架构,我发现自己经常输入这个......
class Item extends ItemPrototype {
public Quality: kendo.data.ObservableObject = new kendo.data.ObservableObject();
}
是的,这样做很好,但它变得令人讨厌。有没有办法设置打字稿让我用一只空手?喜欢......
class Item extends ItemPrototype {
public Quality: observable = new observable();
}
答案 0 :(得分:28)
是的,有办法。 import
可用于导入模块,也可用于定义类型名称以使其更短。以下是后者的一个例子:
declare module alpha.bravo.charlie {
export class Delta {
constructor();
}
}
import Delta = alpha.bravo.charlie.Delta;
var d: Delta = new Delta();
您还可以通过让类型推理系统完成某些工作来保存输入。
var d = new Delta();
答案 1 :(得分:2)
从1.4开始,我们可以使用type
关键字。
随着TypeScript 1.3的出现,我们专注于添加更多类型 系统和ECMAScript 6功能到TypeScript。我们快点吧 看看下一步你可以使用的一些新功能 发布TypeScript。所有这些功能都在主人身上 如果您想查看它们,请在我们的GitHub存储库中进行分支 你自己今天。
通过这些功能,我们可以更准确,更轻松地使用 在运行时可能具有不同类型的变量和表达式。 这些功能共同帮助减少了对显式类型的需求 注释,类型断言以及“任何”的使用。类型。类型 定义文件(.d.ts)作者可以更精确地使用它们 描述外部库。对于那些继续发展的人 编译器,您会注意到我们已经在使用这些功能 今天的编译器。
有关详细信息,请访问:TypeScript 1.4 sneak peek: union types, type guards, and more
示例:
让我们创建简单的模型: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;
}
}
}
}