为node-simple-schema创建适当的类型

时间:2017-04-11 01:39:56

标签: node.js angular typescript meteor

我正在尝试在我的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
  • 创建文件'/both/models/shared.schema.ts'
  • 档案内容:

    从'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的类型。

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

您是否尝试过没有荣誉,如36969442

所示
import SimpleSchema from 'simpl-schema';

包导出README