TypeScriptのコードをC#に移植しています。
TypeScriptの共用型(Union Types)をC#で書くやり方はありますか?
TypeScript
1function createUintArray(arr: number[]): Uint32Array | Uint16Array { 2(略) 3 return r; 4}
あった場合、関数createUintArrayの戻り値が Uint32Array | Uint16Array なんですよね。
そのまま書き直す方法は無いのでしょうか。
#インタプリタのTypeScriptだからこその型決定かも。。
この辺りが参考になるかと
https://ufcpp.net/study/csharp/interop/memorylayout/
ありません。複合型というのはありますが、TypeScript のそれとは違い、C の union に近いものです。質問のようなことがしたい場合、uint[] でいいでしょう。
>>YT0014 さん
それはおそらくC言語の共用体ですね。。TypeScriptの英語はUnion Typesで、
日本語では共用体型と訳されてますが、ややこしいので直和型とかの方がいいかも。。
>>Zuishin さん
ありがとうございました。型の無いJavaScriptで、なんとかするために導入されたもの、
例えば戻り地で復数の型を返してしまっているコードに対して、
anyを使うよりUnion Typesを使って、より良い型定義に導こう。らしいです。
でも、いま移植してるコードはジェネリクスみたいに積極的な使い方してて、
うーん、C#でもジェネリクスで書こうかな。
参考URL http://typescript.ninja/typescript-in-definitelyland/types-advanced.html

回答1件
あなたの回答
tips
プレビュー