TypeScript和Knockout视图模型

时间:2013-03-10 15:53:27

标签: knockout.js typescript

因此,由于TypeScript提供了令人敬畏的类型安全功能,我遇到了一种新的问题。假设我想传递强类型视图模型。用原始属性或KO包装属性键入这些更好吗?有没有办法制作一个支持两者的标准界面?如在

interface IPerson {
    FirstName: String;
}

class Person implements IPerson {
    FirstName: String;
}

class KOPerson implements IPerson {
    FirstName:  KnockoutObservableString;
}
显然,以上不会编译。有没有办法实现某种多态性,其中可以通过相同的共享接口传递未包装或KO包装的视图模型版本?没有回复到任何地方的“任何”打字?我讨厌将Knockout-awareness烘焙到我所有的视图模型类型中。我希望这一系列的提问有意义!

1 个答案:

答案 0 :(得分:2)

我认为你没有理由不想将KO意识融入你的视图模型中?如果您决定从Knockout切换到另一个MVX框架,您可能需要重新考虑您的视图模型。

我要做的是为你将从后端返回的参数编写TypeScript接口。通过这种方式,您的后端界面显然是打字和定义的。如果您想切换到另一个框架,可以重复使用此类型。