問題タブ [structural-typing]

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 投票する
2 に答える
166 参照

scala - scalaの構造マッチとは

scala での構造マッチングに関するいくつかの質問

質問 1) 次のコードでは、テイクオフに必要なオブジェクトと構造的に一致するため、渡しBirdて渡すことができますか?PlanetakeOffBirdPlaner

質問 2) ReflectiveCalls とは何ですか? インポートする必要がありましたscala.language.reflectiveCalls。そうしないと、警告が表示されますreflective access of structural type member value callsign should be enabled by making the implicit value scala.language.reflectiveCalls visible.

質問 3) 次のように作成するにはどうすればよいですかBird: val bird = new Bird("Polly the parrot"){ val callsign = name }. だけではないはずval bird = new Bird("Polly the parrot")です。どうしてこれがコンパイルされるのですか。

質問 3.1)。bird私は追加を渡したので、まだタイプですか、Birdそれとも他のタイプですか{...}

4) の型は何rですかtakeOff

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

scala - メソッドに基づくジェネリック型の定義 (構造型付け)

いくつかの関数に基づく型でクラスを宣言しようとしています。

readC は A と B の両方で機能するはずです。また、A と B のクラスを変更できないため、ここでは特性ベースのソリューションは機能しません。

また、それを行うより良い方法はありますか?

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

typescript - TypeScriptジェネリックはJavaとどう違うのですか?

次のコードは、Java で予想される型エラーを生成しますが、TypeScript はそれをエラーとは見なしません。これは仕様によるものですか、それとも TypeScript のバグですか?

実際、TypeScript はこれをエラーとは見なしません。

TypeScript はすべてのクラスを公称型ではなく構造型として扱いますか? 私はクラスを名目上の型として扱う Java と Flow に慣れています。

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

scala - scala.tools.reflect.ToolBox による型チェック後の型の等価性のチェック

tree1構文木で表される式とtree2が同じ型かどうかを判断したい。の型チェック方法を使ってやってみましたがscala.tools.reflect.ToolBox、実際の Scala の型と矛盾しているようです。

ここでツールボックスを作成します。

型の不等式を報告します。

タイプの表現を求めます:

これらのタイプが正常に統合されました。

最後のスニペットで行われているのと同じようなタイプの式をチェックしてtree1表現tree2することはできますか?

編集:最小限の定義

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

typescript - TypeScript ジェネリック: 他の型 S と構造的に同じ型 T を定義する方法

Step入力としてtype の値を必要とAし、 type の値を与えるa の概念がありますB

ここで、2 つのステップを作成したいので、内部は次のようになりますclass Step

私が達成したいのは、型Bを期待する関数に型を渡すことができることを型システムに何らかの形で伝えることですC(構造型付けは、 のすべてのフィールドCが に存在することを確認する必要がありますB)。これにより、行が正常にreturn nextStep.run(b)機能します。

例:

ご覧のとおりstepB、 requires が入力であるため、 is{a: number}からの出力を供給することができます。しかし、 で関係を定義する方法がわかりません。これを達成する方法はありますか?stepA{a: number, b: string}andThen