質問編集履歴
1
タイトルの脱字とファイル名記載ミス修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Typescriptで関数の引数が正しくサジェストされる書き方をご教示いただきたい。
|
1
|
+
Typescriptで関数の引数の型が正しくサジェストされる書き方をご教示いただきたい。
|
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
関数の引数に関数のオブジェクトを渡し、そのオブジェクトの関数それぞれの引数に型のサジェストをして欲しいです。
|
4
4
|
### ソースコード
|
5
5
|
|
6
|
-
```ts
|
6
|
+
```index.ts
|
7
7
|
const fn = <Keys extends string, Arg>(fnObj: {
|
8
8
|
[key in Keys]: (arg: Arg) => void;
|
9
9
|
}) => {
|
@@ -24,7 +24,7 @@
|
|
24
24
|
});
|
25
25
|
```
|
26
26
|
### 現状
|
27
|
-
```ts
|
27
|
+
```index.ts
|
28
28
|
newObj.hoge();
|
29
29
|
//正しいサジェストがでる
|
30
30
|
//(property) hoge: (arg: {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
```
|
42
42
|
### 理想
|
43
43
|
|
44
|
-
```ts
|
44
|
+
```index.ts
|
45
45
|
newObj.hoge();
|
46
46
|
//(property) hoge: (arg: {
|
47
47
|
// num: number;
|
@@ -53,7 +53,7 @@
|
|
53
53
|
```
|
54
54
|
### 試したこと
|
55
55
|
ジェネリクスを変えてみたり色々と試してはみましたが、どれもうまくいきませんでした。
|
56
|
-
```ts
|
56
|
+
```index.ts
|
57
57
|
const fn = <Keys extends string, Args extends Record<Keys, any>>(fnObj: {
|
58
58
|
[key in Keys]: (arg: Args[key]) => void;
|
59
59
|
}) => {
|
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
### 補足情報(FW/ツールのバージョンなど)
|
74
74
|
Editor : VSCode
|
75
|
-
```json
|
75
|
+
```package.json
|
76
76
|
"typescript": "^4.8.2",
|
77
77
|
```
|
78
78
|
なにかアドバイスいただけるとありがたいです。
|