TypeScript の関数

TypeScript の関数

1. 関数の定義

1.1 JavaScript の関数

TypeScript の関数について学習する前に、JavaScript でよく使用される次の関数定義を確認しましょう。

最初の方法: functionキーワードを使用して関数を宣言する

関数 add1 (x, y) {
    x + yを返す
}


2番目の方法: リテラル値を使用して関数を宣言する

定数add2 = 関数(x, y) {
    x + yを返す
}


3番目の方法: 矢印関数を使用して関数を宣言する

定数add3 = (x, y) => {
    x + yを返す
}


1.2 TypeScriptの関数

TS での関数宣言方法は JS と似ています。唯一の違いは、パラメータの型と戻り値の型が固定されていることです。戻り値がない場合は、戻り値の型を空白のままにするのではなく、void にする必要があります。

次に、TS を使用して上記の 3 つの関数を再宣言します。

最初の方法は、function キーワードを使用して関数を宣言することです。

/*
 構文構造は次のようになります: 関数 関数名 (パラメータ 1: 型、パラメータ 2: 型、...): 戻り値の型 {
     関数本体}
 */
関数 add4(x: 数値, y: 数値): 数値 {
    x + yを返す
}


2番目の方法: リテラル値を使用して関数を宣言する

/*
 構文構造は次のようになります: const 関数名 = 関数 (パラメータ 1: 型、パラメータ 2: 型、...): 戻り値の型 {
     関数本体}
 */
const add5 = 関数 (x: 数値, y: 数値): 数値 {
    x + yを返す
}


3番目の方法: 矢印関数を使用して関数を宣言する

/*
 構文構造は次のとおりです: const 関数名 = (パラメータ 1: 型、パラメータ 2: 型、...): 戻り値の型 => {
     関数本体}
 */
// 3. 矢印関数を使用して関数を宣言します。const add6 = (x: number, y: number): number => {
    x + yを返す
}


上記は TS で関数を宣言する方法です。 JS ではパラメータ分離割り当ての状況もあります。TS でパラメータの型を指定するにはどうすればよいでしょうか?サンプルコードは次のとおりです。

const add7 = ({ x, y }: { x: 数値; y: 数値 }): 数値 => {
    x + yを返す
}

TS では、次のように、より読みやすい書き方もあります。

const add8: (baseValue: 数値、増分: 数値) => 数値 = 関数 (
    x: 数値、
    y: 数値
): 番号 {
    x + yを返す
}

このメソッドは関数を 2 つの部分に分割します。最初の部分は関数の戻り値の型であり、2 番目の部分は関数が定義される場所です。

実は、前半はコードの可読性を高めるためだけのもので、実用的な意味はあまりありません。

2. オプションパラメータとデフォルトパラメータ

TypeScriptのすべての関数は必須です。これは、null やundefinedパラメータとして渡すことができないという意味ではなく、パラメータごとに値が渡されるかどうかを意味します。1 対 1 の対応がない場合、例外がスローされます。簡単に言えば、仮パラメータの数は実際のパラメータの数と同じです。

サンプルコードは次のとおりです。

関数 add(x: 数値, y: 数値): 数値 {
    x + yを返す
}
let result1 = add(1) // 引数は 2 つ必要でしたが、 1 つでした。
結果2 = add(1, 2) とします。
let result3 = add(1, 2, 3) // 引数は2つ必要だったが、3つになった

JS では、各パラメータはオプションであり、渡すことも渡さないこともできます。渡されなかった場合は、 undefinedのデフォルト値になります。

これは TS でも可能です。オプションのパラメータ関数を実装するには、パラメータ名の後に ? を追加するだけです。

次のコード:

// オプションパラメータ関数を実装する // パラメータ名の横に?を追加するだけ function add(x: number, y?: number): number {
  x + yを返す
}
結果1 = add(1)とする
結果2 = add(1, 2) とします。
// let result3 = add(1, 2, 3) // 引数は 2 つ必要でしたが、3 つでした

上記のコードはオプションパラメータを実装しています

TS でデフォルト パラメータを実装するのは、JS でデフォルト パラメータを実装するのと同じです。値を割り当てるだけです。

サンプルコードは次のとおりです。

;(関数 () {
  関数 add(x: 数値, y: 数値 = 2): 数値 {
    x + yを返す
  }
  結果1 = add(1) // 3
  result2 = add(1, 2) // 3 とします。
})()

もちろん、y に型を指定しない場合は、JS の場合とまったく同じになります。

3. 残りのパラメータ

いわゆる残余パラメータとは、関数を定義するときに 2 つのパラメータを渡す必要があるが、関数を呼び出すときに 3 つのパラメータが渡される場合です。このとき、余分なパラメータがあり、それが残余パラメータです。

JS では、 argumentsを使用して渡された追加のパラメータにアクセスできます。では、TS の残りのパラメータにどのようにアクセスするのでしょうか?

実際、TS では、すべてのパラメータを変数に格納できますが、この変数は実際には分離された配列です。

サンプルコードは次のとおりです。

関数 fun(x: 数値, ...数値: 数値[]): void {
    console.log(数字)
}
関数1, 2, 3, 4 // [ 2, 3, 4 ]

TypeScript の関数に関するこの記事はこれで終わりです。TypeScript 関数に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • TypeScript での関数オーバーロード
  • TypeScript 関数の定義と使用例のチュートリアル
  • TypeScriptの一般的な型と応用例の説明
  • TypeScript のクラス
  • TypeScript の関数とクラスを理解していますか?

<<:  親要素に対する CSS 子要素の固定配置ソリューションの詳細な説明

>>:  JS を使って CSS3 で丸い角を実装する方法

推薦する

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

親ページの更新を制御するために HTML で iframe を実装するためのアイデアとコード

1. 応用シナリオ親ページ a.jspサブページ b.jsp (ページ a に埋め込まれた ifra...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

JavaScriptは双方向リンクリストプロセス分析を実装します

目次1. 二重連結リストとは何か2. 双方向リンクリストのカプセル化3. 双方向リンクリストの一般的...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

ミニプログラムは、カスタムのマルチレベル単一選択と複数選択を実装します

この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...

Web でよく使われるフォントの紹介 (iOS および Android ブラウザでサポートされているフォント)

年末なので仕事も少なくなっています。私が何もせずにいるのを見ると、上司はきっと不快に思うでしょう。そ...

コマンドラインを使用してUbuntuのバージョンを検出する方法

方法1: lsb_releaseユーティリティを使用するlsb_release ユーティリティは、L...

入力ボックスのオートコンプリート機能をオフにする

これで、autocomplete と呼ばれる input の属性を使用できるようになりました。オート...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

Vue-CLI3.xはプロジェクトをサーバーに自動的にデプロイします

目次序文1. scp2をインストールする2. テスト/本番環境サーバーのSSHリモートログインアカウ...

JavaScriptの信頼性の低い未定義

undefined JavaScript では、値が undefined かどうかを判断したい場合は...