私はMeteor/Angular2/Typescriptプロジェクトでnode-simple-schemaを使用していて、入力に関する問題が発生しています。私は無駄にパッケージで問題を開けてみました:node-simple-schemaの適切な型付けを作成する
https://github.com/aldeed/node-simple-schema/issues/90
私が投稿何から:再現する 「手順: - 『gitのクローン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'
続きのファイルを作成します。ファイルの内容:
import {SimpleSchema} from 'simple-schema';
エクスポートCONST MyValidationContext =新しいSimpleSchema({ 名:{ タイプ:文字列 }})。
は、エラーが発生します。他の場所でアプリケーション内で使用するためにエクスポート 名前検証コンテキスト:行動期待
.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/fibers/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 is not a function W20170403-05:53:05.592(0)? (STDERR) at meteorInstall.both.models.shared.schema.js (both/models/shared.schema.ts:6:35) W20170403-05:53:05.592(0)? (STDERR) at 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) at /var/webapps/schema/.meteor/local/build/programs/server/boot.js:303:34 W20170403-05:53:05.593(0)? (STDERR) at Array.forEach (native) W20170403-05:53:05.594(0)? (STDERR) at 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) at /var/webapps/schema/.meteor/local/build/programs/server/boot.js:128:5 W20170403-05:53:05.594(0)? (STDERR) at /var/webapps/schema/.meteor/local/build/programs/server/boot.js:352:5 W20170403-05:53:05.595(0)? (STDERR) at Function.run (/var/webapps/schema/.meteor/local/build/programs/server/profile.js:510:12)
。
dts-gen -m simpl-schema
2:古い、廃止予定の流星 - シンプルなスキーマのタイピングをインポート
typings install --save meteor-simple-schema --source global --global
私は
1を試してみました他に何
。そこから/ typings/globals/meteor-simple-schemaの型をコピーし、/typings.d.tsに新しいモジュールsimple-schemaを宣言して貼り付けました。
はTypeError:いくつかの調整後に、私は最も重要なものを除くすべてのコンパイルエラーによってほとんどだsimpl_schema_1.SimpleSchemaは機能
ではありません、私は逃したか、私のセットアップで間違ってやったものがありますこの点に到達するには?まだ見つけられていないタイプのタイピングがありますか?モジュールの型を宣言するためのより簡単な方法はありますか?私は手動でそれをやらなければならないことに自分自身を辞めましたが、明らかにnew SimpleSchema
を可能にするタイプを書く方法を理解することはできません。
ありがとうございました。
私は持っていました。私はそれが/simpl-schema/main.jsでエクスポートされたものを見ることができるということに同意してデフォルトのメンバーをエクスポートしていないというエラーが出ました。もう一度やってみて、ただ安全にする。 –
/collections/shared/shared.schema.ts(8,8):モジュール 'simpl-schema'にはデフォルトのエクスポートがありません。しかし、あなたは、_itがクラッシュしていないことを知っています。それは単なるコンパイルエラーです。私はなぜコンパイラがそれを見ることができないのだろうかと思っていますが、動作しているように見え、Meteorが読み込まれて実行されます。これはさらにトラブルシューティングを行うことができます。 –
あなたの入力定義には、デフォルトの書き出しが含まれていない可能性があります。 TypeScriptはこれらの入力をコード解析に依存していますが、誤った入力は基になるJSコードには影響しません。 – ghybs