問題タブ [tsc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
836 参照

typescript - typescriptコンパイラエラー:「{}[]」を「配列」に変換できません

このtypescriptコードでコンパイラエラーが発生しています:)

私はplayerBulletsを次のように定義しました:

そしてこれをやってみてください:

しかし、このコードは赤い構文エラーで市場に出回っています:

WebUI / ts / game.ts(89,19):予期される変数、クラス、インターフェイス、またはモジュールWebUI / ts / game.ts(88,29):「{}[]」を「配列」に変換できません

定義をこれに変更すると:

それはうまくいきます、何かアイデアはありますか?

0 投票する
1 に答える
2484 参照

javascript - TypeScript コンパイル エラー「不明なファイル拡張子」

複数の *.ts ファイルでビルド エラーが発生します。TypeScriptコンパイラは言う

ファイルの不明な拡張子: "< filenameandpath >.ts"。.ts および .d.ts 拡張子のみが許可されます。

これらのファイルは、保存時に正常にビルドされます。Web Essentials は何も文句を言わず、これが出力ウィンドウに表示される唯一のメッセージです。私はVS 2012を使用しています

0 投票する
1 に答える
455 参照

typescript - 複数の typescript を 1 つのクロージャーにコンパイルする

それぞれが同じモジュール識別子を持つ 1 つのクラスを含む複数の *.ts ファイルをコンパイル (--out) すると、*.js ファイルが作成され、各クラスが独自のクロージャーでラップされ、モジュールの参照が各クロージャーに渡されます。

例:

Bar.ts:

足:

out.js

コンパイラが両方のクラスが宣言されている 1 つのクロージャーを作成するように、両方のクラスを 1 つのファイルに含める方法はありますか? すべてのクラスを 1 つの *.ts ファイルに配置することは、非常に悪い考えのようです。

目的は次のとおりです。

  1. クラスごとに 1 つの *.ts ファイルを使用する
  2. モジュールのすべてのクラスで、エクスポートされていないクラスを使用する
  3. モジュールにクリーンなインターフェースを提供する

私が実際に意味することのダーツのような擬似コード:

baz.ts

フッツ

Bar.ts

読んでくれてありがとう、

マーティン

0 投票する
2 に答える
4269 参照

javascript - TypeScript:コンパイルすると、参照されていないインポートが削除されます

このプロジェクトでは、モジュールローダーとしてRequireJSを使用しています。一部のモジュールはグローバルライブラリに影響を与えるため、それらが参照されているモジュール内で直接使用されることはありません。

例:

これは、JavaScriptでモジュールを作成するときに期待どおりに機能します。ただし、プロジェクトを段階的にTypeScriptに変換しています。上記の例を考えると、これは次のようになります。

そして、これをJavaScriptにコンパイルするとき、コンパイラーは役立つことを望んでおり、未使用のインポートをすべて削除します。そのため、これは私のコードを壊し、2番目にインポートされたモジュールが利用できない原因になります。

私の現在の回避策は冗長な割り当てを含めることですが、これは見苦しいです:

コンパイル中にモジュールを最適化しないようにTypeScriptコンパイラを構成できるかどうか誰かが知っていますか?

0 投票する
1 に答える
520 参照

typescript - 無効な割り当てに関する TSC 警告の欠落

node-serialportライブラリの TypeScript 型定義ファイルを作成しようとしています。ライブラリは、2 つの関数を含むparsers変数をエクスポートします。後者は、パーサーとして直接使用することはできません。呼び出されるとパーサーが生成されます。これは、型定義ファイルでの私の最初の試みの断片です。rawreadline

parsers.readline私が直面している問題は、タイプの変数に割り当てた場合に tsc が警告しないことですParserFunc。説明のために、次の TypeScript ファイルを考えてみましょう。

tsc を使用してこのファイルをコンパイル/トランスパイルすると、次のようになります。

しかし、への割り当てに対する警告はありませんd! を削除して必須のdelimiterパラメーターを作成すると、次のようになります。readline?

したがって、割り当てdが無効であることを検出しました。しかし、なぜ前にしないのですか?

TypeScript との出会いはこれが初めてなので、お手柔らかにお願いします。ありがとう!:-)

0 投票する
3 に答える
44849 参照

typescript - タイプスクリプトのプリミティブ型:「数値」と「数値」の型に違いはありますか (TSC は大文字と小文字を区別しません)?

type のパラメーターを書くつもりだったのですが、タイプのスペルを間違えて代わりnumberに書いてしまいました。Number

私のIDE(JetBrains WebStorm)では、タイプNumberはプリミティブタイプに使用されるのと同じ色で書かれていnumberますが、クラスの名前(既知または未知)を書くと、別の色が使用されるため、何らかの形で認識されると思います正しい/ほぼ正しい/ある程度正しいタイプとしてのスペルミスのタイプ。

コードをコンパイルすると、コンパイラが という名前のクラスを見つけられなかったなどと文句を言う代わりにNumber、TSC は次のエラー メッセージを書き込みます。

numberということは、Number両方が別のタイプとして共存するということですか?

これが本当なら、これらのクラスの違いは何ですか?

そうでない場合は、不明なクラスに対して表示されるのと同じエラーメッセージを単に書き込まなかった理由 (「名前 'Number' は現在のスコープに存在しません」)

これはコードです:

0 投票する
2 に答える
3478 参照

node.js - node.d.ts をインクルードするときの Typescript コンパイラ エラー

私は最近、PHP から Node.js に切り替え始めました。私は Typescript の大ファンなので、Typescript + Node.js を使用しています。スケールアップして実際にコードをビルドし始めたとき、サンプルのコンパイルは問題なく行われていました。しかし、私は問題に遭遇しました。私の .ts ファイルの 1 つで node.d.ts が (リファレンス doc コメントで) 参照されるたびに、Node.js の Typescript コンパイラは重複した定義について文句を言います。私の .ts ファイルの 2 つは、node.d.ts 定義がないことについて不平を言っていますが、main.js ファイルにはありません。(以下のファイル:)

search_request.ts

main.ts

<reference path="node.d.ts" />search_request.ts の先頭に追加すると、正常にコンパイルされます。削除すると、定義が見つからないという警告が表示されます。ただし、いずれかのファイルに含めると、main.ts をコンパイルすると、重複した識別子に関する何百もの警告が表示されます。

私は Typescript は初めてではありませんが、Node.js は初めてで、VS2012 ではなく tsc コンパイラを直接使用するのは初めてです。私は正確に何を間違っていますか?コンパイラは lib.d.ts のような node.d.ts を暗黙的にインクルードしますか? もしそうなら、search_request.ts をコンパイルするときにエラーが発生するのはなぜですか?