我正在开发一个使用socket.io的NPM库,并且正在使用Typescript。
让我们说我的图书馆中有一个与此类似的功能:
public someFunction = (_socket: Socket) => {}
,并且在我使用此库的应用中,仅调用此函数,而不是直接调用socket.io,如下所示:
public anotherFunction = ():void => {
myLibraryClass.someFunction(socket);
}
很显然,我的库需要安装socket.io。
但是,如果我实际上没有在应用程序的socket.io中调用任何内容,是否需要NPM安装socket.io库,或者仅安装@types文件就足够了吗?
答案 0 :(得分:0)
库中的someFunction
方法从调用方接收socket
实例,在您的应用程序中,您使用someFunction
实例调用socket
方法。因此,在您的库中,someFunction
实际上没有创建socket
的任何实例,而是从调用者那里接收了socket
实例,因此它不必安装socket.io包,而{{1} } 足够的。在您的应用程序中,您使用@types
实例调用someFunction
,因此您已经安装了socket.io包(如果您的应用程序也使用TypeScript开发,则安装了@types)。