我刚刚查看了一些示例
https://github.com/borisyankov/DefinitelyTyped
并注意到其中的一些库并不像我想象的那么容易上手和使用,但这可能是因为我还是 TypeScript 节目的新手。
所以让我印象深刻的第一件事(使用 Knockout 作为这里的例子),它都没有包含在一个模块中,我真的不认为这是一个主要问题,可能更多的是由谁做它的设计决定,但它看起来像它会更有意义(可能是因为我倾向于比其他语言做更多的 C#),因为它是自包含的,并且更容易在命名空间下包含其他插件:
i.e Knockout.ObservableString();
无论如何,第二点更多的是关于如何在现实世界的场景中使用这些实现,通常我会这样做:
function SomeClass() {
var self = this;
self.SomeObservable = ko.observable("default-value");
}
现在我期待做这样的事情:
/// The Ref
interface ISomeClass {
SomeObservable: KnockoutObservableString;
}
class SomeClass implements ISomeClass {
// What goes here?
}
现在假装有一些合乎逻辑的理由让我的 POJO(我想它现在应该被称为 POTO)一个接口然后实现它,因为通常我不会费心将接口放在任何具有 0 行为的东西上。
现在在上面的示例中,接口会很好,因为有一个KnockoutObservableString
接口,但是我找不到实现,所以我不是打算使用该接口还是应该制作自己的实现?
我可以与某人一起为我指明方向并回答:
A) Why it wasn't written as a module?
B) How do you actually use the descriptors properly?