类 的 npm 包在打字稿和转译版本之间不兼容
npm package with classes not compatible between typescript and transpiled versions
你好,我正在编写一个 npm 包,它是用打字稿编码并转译的。
该包现在已在打字稿应用程序中使用,但我有 1 个错误:
[ts]
Argument of type 'import("/home/chriss/Sites/ORM/connection").DB' is not assignable to parameter of type 'import("/home/chriss/Sites/ORM/dist/connection").DB'.
Property 'connections' is protected but type 'DB' is not a class derived from 'DB'.
相同Class只是一个是打字稿,另一个是转译的
我这样声明:
import { DB } from "@unicoderns/orm/connection"
...
constructor(config: Config, baseURL: string) {
this.config = config;
this.db = new DB({ dev: config.dev, connection: config.dbconnection });
}
然后像这样调用模型:
this.usersTable = new users.Users(jsloth.db);
其中 jsloth.db 是第一个代码中的 this.db。
这是 在 npm 包中 期待什么:
constructor(DB: DB, privacy?: string);
我能做什么?
编辑 1:
软件包已经发布,源代码位于:
https://github.com/unicoderns/ORM
肮脏而快速的解决方法是将 | any
添加到预期类型
model.ts
在第 56 行
constructor(DB: DB | any
这应该更正 :)
使用这个包的库也是开源的,代码可以在以下位置找到:
https://github.com/unicoderns/JSloth
从包中删除 | any
后,几个文件应该 "yell" IDE 中的错误,但可能仍然有效,例如第 57 和 58 行的 source/system/apps/auth/endpoint/v1/index
再次感谢您的帮助。
如果将 @unicoderns/orm
包的 package.json
中的 "main"
和 "typings"
字段指向 dist
子目录,则导入 @unicoderns/orm
将转到该子目录。当您导入 @unicoderns/orm
的非主模块时,例如 source/system/lib/core.ts
第 25 行:
import { DB } from "@unicoderns/orm/connection"
需要使用dist
中的路径来保持一致性:
import { DB } from "@unicoderns/orm/dist/connection"
有关详细信息,请参阅 this thread and particularly this comment。
你好,我正在编写一个 npm 包,它是用打字稿编码并转译的。
该包现在已在打字稿应用程序中使用,但我有 1 个错误:
[ts]
Argument of type 'import("/home/chriss/Sites/ORM/connection").DB' is not assignable to parameter of type 'import("/home/chriss/Sites/ORM/dist/connection").DB'.
Property 'connections' is protected but type 'DB' is not a class derived from 'DB'.
相同Class只是一个是打字稿,另一个是转译的
我这样声明:
import { DB } from "@unicoderns/orm/connection"
...
constructor(config: Config, baseURL: string) {
this.config = config;
this.db = new DB({ dev: config.dev, connection: config.dbconnection });
}
然后像这样调用模型:
this.usersTable = new users.Users(jsloth.db);
其中 jsloth.db 是第一个代码中的 this.db。
这是 在 npm 包中 期待什么:
constructor(DB: DB, privacy?: string);
我能做什么?
编辑 1:
软件包已经发布,源代码位于:
https://github.com/unicoderns/ORM
肮脏而快速的解决方法是将 | any
添加到预期类型
model.ts
在第 56 行
constructor(DB: DB | any
这应该更正 :)
使用这个包的库也是开源的,代码可以在以下位置找到:
https://github.com/unicoderns/JSloth
从包中删除 | any
后,几个文件应该 "yell" IDE 中的错误,但可能仍然有效,例如第 57 和 58 行的 source/system/apps/auth/endpoint/v1/index
再次感谢您的帮助。
如果将 @unicoderns/orm
包的 package.json
中的 "main"
和 "typings"
字段指向 dist
子目录,则导入 @unicoderns/orm
将转到该子目录。当您导入 @unicoderns/orm
的非主模块时,例如 source/system/lib/core.ts
第 25 行:
import { DB } from "@unicoderns/orm/connection"
需要使用dist
中的路径来保持一致性:
import { DB } from "@unicoderns/orm/dist/connection"
有关详细信息,请参阅 this thread and particularly this comment。