問題タブ [narrowing]

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 に答える
31 参照

typescript - リテラルとしての汎用オブジェクト パラメータ

汎用オブジェクトを受け入れる単純な関数があります。戻り値の型はそのオブジェクトと同じである必要がありますが、as constアサーションの動作と同様に絞り込まれています。

例えば。以下は、戻り値の型が{ a: "first"; b: "second" }and notである必要があり{ a: string; b: string }ます。

myFn戻り値の型が最初の引数の型であることを型チェッカーに指示できるメカニズムはありますか?

0 投票する
0 に答える
53 参照

c++ - 「()」と「{}」を使用して変数を初期化する際の違いは何ですか?

このコード test.cc

clang または gcc で

Clang は 4 行目でエラー メッセージを表示するだけですが、5 行目は見落としています。GCC では、うまくコンパイルされます。

ゴッドボルトで再現: https ://godbolt.org/z/rzxTSg

「b {a};」の使用の違いは何だろうと思っています。および「c (a);」値を初期化します。

私は何かを逃すかもしれないと思います、誰かが私を助けてくれますか? ありがとう〜

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

c++ - 定数式が -1 に評価され、'char' 型に縮小できません [-Wc++11-narrowing] エラー

古いコードを使用していますが、-1新しい C++ 標準を使用してコンパイルするたびにエラーが発生します。

ここにスニペットコードがあります

警告: 変換 C++11 を狭めるに続いて、コードとブラケットを括弧に変更しようとしましたが、それでも同じエラーが発生しました。古い C++ 標準に戻らない解決策はありますか?