【问题标题】:KnockoutObservableArray with typed elements in TypeScript在 TypeScript 中具有类型化元素的 KnockoutObservableArray
【发布时间】:2012-12-04 13:40:19
【问题描述】:

我目前正在寻求将我们的项目迁移到 TypeScript。我找到了this 一组很棒的定义文件,我目前正在尝试使用Knockout 的定义文件。

我知道定义文件有一个 observableArray KnockoutObservableArray 的类型,我也知道您可以定义一个类型化数组,如 MyType[]

我想知道我是否可以以某种方式将这两者结合起来?我想创建一个KnockoutObservableArray,其元素的类型应为MyType

提前致谢!

【问题讨论】:

  • @JcFx 我不同意,这个问题没有回答我的问题。
  • 我的错,你是对的。我看得太快了。

标签: javascript knockout.js typescript


【解决方案1】:

TypeScript 的路线图包括泛型,我认为这是您创建所需内容所需要的。以下代码不是真实的,甚至可能不是 TypeScript 团队实现泛型的方式,但它提供了我认为的实现方式的味道。我还遗漏了有关如何使其可观察等的实现细节:

class KnockoutObservableArray <T> {
    constructor(public Items: T[]) {
    }
}

var observableString = new KnockoutObservableArray<string>(['foo', 'bar']);

但正如我所提到的,TypeScript 中还没有包含泛型,所以现在你必须让它动态化!

var observableString: any;

【讨论】:

  • 引用“泛型将包含在最终语言中”...讨论:typescript.codeplex.com/discussions/397702 语言规范:typescriptlang.org/Content/…(第 18 页)
  • 该死,太糟糕了:) 感谢您的回答和链接。使用 Knockout 的类型定义文件,您可以将某些属性指定为类型化的 observables,即 KnockoutObservableString、KnockoutObservableBool 等。还有一个 KnockoutObservableArray,但是我认为它不可能定义它将包含的元素的类型.过几天我会接受你的回答,可能会同时发表其他意见。
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 2021-10-04
  • 2021-10-27
相关资源
最近更新 更多