質問するログイン新規登録

回答編集履歴

1

追記

2021/03/24 02:01

投稿

hoshi-takanori
hoshi-takanori

スコア7903

answer CHANGED
@@ -1,9 +1,36 @@
1
- こんな感じでしょうか。
1
+ こんな感じでしょうか。(よく考えたら : Hoge[] は省略可能だったので省略しました。)
2
2
 
3
3
  ```TypeScript
4
4
  const aa: (args: {
5
5
  login: boolean;
6
6
  badgeConten: number;
7
- }) => Hoge[] = ({ login, badgeConten }): Hoge[] => {
7
+ }) => Hoge[] = ({ login, badgeConten }) => {
8
8
  // 以下略
9
- ```
9
+ ```
10
+
11
+ ---
12
+
13
+ const aa: の後ろの以下の部分が関数の型になります。引数は、login と badgeConten というプロパティを持った一つのオブジェクトになります。TypeScript の文法上、引数の名前が必要ですが、引数名はあくまで型を書くのに必要なだけで、実際のコードでは使われません。
14
+ 参考: [1-3. 関数の型 (TypeScriptの型演習(解答・解説編) - Qiita)](https://qiita.com/uhyo/items/0e7821ce494024c98da5#1-3-%E9%96%A2%E6%95%B0%E3%81%AE%E5%9E%8B)
15
+
16
+ ```TypeScript
17
+ (args: {
18
+ login: boolean;
19
+ badgeConten: number;
20
+ }) => Hoge[]
21
+ ```
22
+
23
+ 関数そのものは、型を省略して書くと次のようになります。
24
+
25
+ ```TypeScript
26
+ // 引数を args で受け取る場合
27
+ const aa = (args) => {
28
+ // 以下略
29
+
30
+ // 引数を login, badgeConten に分割して受け取る場合
31
+ const aa = ({ login, badgeConten }) => {
32
+ // 以下略
33
+ ```
34
+
35
+ 引数を args で受け取った場合は args.login や args.badgeConten と書くことになりますが、分割して受け取った場合は args は不要で login, badgeConten とだけ書いて使えます。
36
+ 参考: [関数の引数で分割代入ができる - Qiita](https://qiita.com/im36-123/items/95db77d8f64609a85043)