1

如果您要编写自己的开放源代码打字稿库,您将如何构造打印稿和打印稿定义?根据我的理解,定义文件确实存在于编译器中,因此当您的图书馆被使用时,智能感知可以帮助消费者。如何为新库编写打字稿定义文件?

但是,开发库时定义文件如何在内部工作?你会把所有的类型(接口,类,等等)放在{module} .d.ts文件中,并在内部引用定义文件,这样你就不必两次写入类型(一次在{module}中。 ts和一次在{module} .d.ts中?

在typescript编译器选项中,将“declaration”设置为true有什么意义?对我来说,如果它自动定义文件创建似乎没有帮助不会是非常有益的(即注释)。

如果磁带库有多个模块,你会写每个模块单独定义和定义之间添加引用,然后用一些automater将它们连接起来(即一饮而尽,呼噜声)?

什么我推荐的方式来暴露你的图书馆,以便打字稿消费者和JavaScript消费者都可以使用你的图书馆?

你会如何在打字稿中写测试?你会在测试文件中导入打字稿模块吗?

回答

1

当开发资料库中打字稿你不使用你自己的类的定义。它们是“自包含的”,并且已经向转译器/ IDE提供了所有类型的信息。这些定义与您为外部消费者所提及的一样。

设置declation到真正的意义在于摆脱收集来自打字稿类的类型信息,并定义文件粘贴的繁琐工作。正如我所说的,这些信息已经存在于打字稿文件中,并且可以由转播者自动提取。

关于如何组织你的定义,揭露他们的方式 - 我相信,有多种不同的方式,有一两件事是肯定的 - 你不想手动编写同样的类定义在两个地方。话虽如此,我可以给你一个我如何曝光图书馆project的样本,并在another one中使用它。 请注意index.ts文件以及在package.json -> typings字段中如何显示根文件。在那里您还可以通过茉莉花找到图书馆的单元测试实例。

希望这会给你如何与图书馆的发展过程中去的一些信息。