[解決済み] 未使用のパラメータに対する型チェックをスキップする
質問
typescript プロジェクトをコンパイルする際に
noImplicitAny
オプションで、変数や引数に型を指定するのを忘れないようにします。
しかし、時には使わない引数があることもあります。例えば
jQuery.ajaxTransport("+*", function (options: JQueryAjaxSettings) {
return {
abort: function (_, callback: JQueryCallback) {
abort関数の第1引数には興味がないので、_という名前をつけて無視しています。
TypeScriptではそのようなやり方が正しいのでしょうか?ガイドには載っていなかったのですが。引数は1つしか指定できないので、適切な方法ではないのではと思います。
Typescript は次のようなエラーを発生させます。
エラー TS7006: パラメータ '_' は暗黙のうちに 'any' 型を持ちます。
と入力すればいいのですが
_:any
が、使わない引数のためにちょっとやりすぎな気がします。
どのように解決するのですか?
私も同じような悩みを抱えていました。 例えば、expressとroutingを使用すると、resパラメータだけが必要になることがよくあります。
router.get('/', function (req, res) { res.end('Bye.'); });
この場合、_を使うというあなたのアイデアも有効ですが、私はこうすることも有効だと考えています。
function (_1, _2, _3, onlyThis) { console.log(onlyThis); }
というのも、'_' だけだと lodash/underscore を使うときにちょっと混乱しそうだし、4番目のパラメータに興味があることが一目瞭然だからです。
<ブロッククオート更新:この回答を投稿してからずいぶん時間が経ちました。 というコメントで、少し誤解があるようです。 そこで、私は を明確にします。
アンダースコアのトリックは、Typescriptでは今でも非常に有効です。 最初の回答で述べたように、expressを使用しているときに
app.get('/', (req, res) => {
という警告が表示されます。
'req' is declared but its value is never read
が、->
app.get('/', (_req, res) => {
という警告が出ます。 を取得してはいけません。
error TS7006: Parameter 'req' implicitly has an 'any' type.
というエラーが発生します。
@types/express
は、いずれにせよ、このパラメータを暗黙のうちにタイプしているはずです。
関連
-
[解決済み】tsconfigファイルにおけるesModuleInteropの理解
-
[解決済み] Typescript ReferenceError: exports が定義されていません。
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptで文字列をenumに変換するには?
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み] TypeScriptでインターフェースファイルの定義に基づいたオブジェクトを作成するには?
-
[解決済み】タイプからプロパティを除外する
-
[解決済み】タイプライター。TS7006: パラメータ 'xxx' は暗黙のうちに 'any' 型を持つ。
-
[解決済み] TypeScriptの自由形式関数引数
-
[解決済み】Typescript インターフェースのデフォルト値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 2の@ViewChildアノテーションがundefinedを返す
-
[解決済み] Jest で typescript を使用して identity-obj-proxy を使用すると未定義が返される
-
[解決済み] プロパティ 'values' はタイプ 'ObjectConstructor' に存在しません。
-
[解決済み] グローバル定数の定義
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] TypeScriptで、「extends keyof」と「in keyof」はどういう意味ですか?
-
[解決済み] TypeScriptでfetchを使う方法
-
[解決済み] クラス定数を実装するには?
-
[解決済み] types/* を `dependencies` と `devDependencies` のどちらに入れるかは、どのように決めたらよいですか?
-
[解決済み】TypescriptのArray<Type> VS Type[]について