我正在尝试在我的Meteor / Angular2 / Typescript项目中使用node-simple-schema并遇到类型问题。我尝试在包中打开一个问题无济于事:
https://github.com/aldeed/node-simple-schema/issues/90
从我在那里发布的内容: “重现步骤: - 通过'git clone https://github.com/bsliran/angular2-meteor-base'创建一个全新的项目 - 准备包裹
meteor update
meteor update --all-packages
meteor npm update
meteor remove insecure
meteor remove autopublish
meteor add aldeed:collection2-core
meteor npm install --save simpl-schema
meteor add aldeed:schema-deny
meteor add aldeed:schema-index
meteor add accounts-password
meteor add alanning:roles
档案内容:
从'simpl-schema'导入{SimpleSchema};
export const MyValidationContext = new SimpleSchema({ 名称: { type:String } });
生成错误:
.meteor /包/流星工具/ .1.4.3_2.13aht4s ++ os.linux.x86_64 + web.browser + web.cordova / MT-os.linux.x86_64 / dev_bundle /服务器-LIB / node_modules /纤维/ future.js:280 W20170403-05:53:05.591(0)? (STDERR)throw(ex); W20170403-05:53:05.591(0)? (STDERR)^ W20170403-05:53:05.591(0)? (STDERR)W20170403-05:53:05.592(0)? (STDERR)TypeError: simpl_schema_1.SimpleSchema不是一个函数 W20170403-05:53:05.592(0)? (STDERR)在 meteorInstall.both.models.shared.schema.js (两个/ models / shared.schema.ts:6:35)W20170403-05:53:05.592(0)? (STDERR)在fileEvaluate(packages / modules-runtime.js:197:9) W20170403-05:53:05.592(0)? (STDERR)at require (packages / modules-runtime.js:120:16)W20170403-05:53:05.592(0)? (STDERR)at server / main.ts:4:22 W20170403-05:53:05.593(0)? (STDERR)在 /var/webapps/schema/.meteor/local/build/programs/server/boot.js:303:34 W20170403-05:53:05.593(0)? (STDERR)在Array.forEach(本机) W20170403-05:53:05.594(0)? (STDERR)在Function..each..forEach (/home/blah/.meteor/packages/meteor-tool/.1.4.3_2.13aht4s++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib /node_modules/underscore/underscore.js:79:11)W20170403-05:53:05.594(0)? (STDERR)在 /var/webapps/schema/.meteor/local/build/programs/server/boot.js:128:5 W20170403-05:53:05.594(0)? (STDERR)在 /var/webapps/schema/.meteor/local/build/programs/server/boot.js:352:5 W20170403-05:53:05.595(0)? (STDERR)在Function.run (/var/webapps/schema/.meteor/local/build/programs/server/profile.js:510:12)
预期行为: 命名的验证上下文导出以供在应用程序中的其他位置使用。
我还尝试了什么
1:dts-gen -m simpl-schema
2:typings install --save meteor-simple-schema --source global --global
导入旧的,不推荐使用的meteor-simple-schema类型。从那里我复制了/ typings / globals / meteor-simple-schema中的类型,并在/typings.d.ts中声明了一个新的模块simpl-schema,我粘贴了它们。稍后进行一些调整,我主要是通过所有编译器错误,除了最重要的一个:
TypeError:simpl_schema_1.SimpleSchema不是函数
我的设置中是否有错误或完全错误的事情要到达这一点?那里有一套我还没有发现的打字吗?是否有更直接的方式来声明模块的类型?我已经让自己不得不手动完成它,但显然无法弄清楚如何编写允许new SimpleSchema
的类型。
提前感谢您的任何帮助。