質問編集履歴

2

再度追加編集します。

2020/10/28 06:36

投稿

eojvkx2
eojvkx2

スコア3

test CHANGED
File without changes
test CHANGED
@@ -197,3 +197,175 @@
197
197
 
198
198
 
199
199
  ```
200
+
201
+
202
+
203
+ 教授の通りインターフェイスを作り、
204
+
205
+ インターフェイスのクラスclsOnloadEventを作りました。
206
+
207
+ すると、どばっと色々でてきました・・・
208
+
209
+
210
+
211
+ 質問① まず、どばっと色々出てくるのはしょうがないのでしょうか。
212
+
213
+     出てこなくする方法はあるものでしょうか。
214
+
215
+
216
+
217
+ そしてCustomEventは下記の様にしました。
218
+
219
+
220
+
221
+ ```ここに言語を入力
222
+
223
+ const events = new CustomEvent("xxxonload", {
224
+
225
+ detail:clsOnloadEvent //←■ここの書き方は正しいでしょうか?
226
+
227
+ })
228
+
229
+ ```
230
+
231
+
232
+
233
+
234
+
235
+ 質問②clsOnloadEventに戻り値をセットしようとするとエラーになってしまいます。
236
+
237
+
238
+
239
+ ```ここに言語を入力
240
+
241
+ let vvv = new clsOnloadEvent
242
+
243
+
244
+
245
+ vvv.detail.dt = xhr.responseText //←■ここでUndefinedでエラーとなってしまいます
246
+
247
+ ```
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ ```ここに言語を入力
260
+
261
+ class clsOnloadEvent implements xxxOnloadEvent{
262
+
263
+ detail: xxxOnloadDetail; initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: any): void {
264
+
265
+ throw new Error("Method not implemented.");
266
+
267
+ }
268
+
269
+ bubbles: boolean;
270
+
271
+ cancelBubble: boolean;
272
+
273
+ cancelable: boolean;
274
+
275
+ composed: boolean;
276
+
277
+ currentTarget: EventTarget;
278
+
279
+ defaultPrevented: boolean;
280
+
281
+ eventPhase: number;
282
+
283
+ isTrusted: boolean;
284
+
285
+ returnValue: boolean;
286
+
287
+ srcElement: Element;
288
+
289
+ target: EventTarget;
290
+
291
+ timeStamp: number;
292
+
293
+ type: string;
294
+
295
+ composedPath(): EventTarget[] {
296
+
297
+ throw new Error("Method not implemented.");
298
+
299
+ }
300
+
301
+ initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void {
302
+
303
+ throw new Error("Method not implemented.");
304
+
305
+ }
306
+
307
+ preventDefault(): void {
308
+
309
+ throw new Error("Method not implemented.");
310
+
311
+ }
312
+
313
+ stopImmediatePropagation(): void {
314
+
315
+ throw new Error("Method not implemented.");
316
+
317
+ }
318
+
319
+ stopPropagation(): void {
320
+
321
+ throw new Error("Method not implemented.");
322
+
323
+ }
324
+
325
+ AT_TARGET: number;
326
+
327
+ BUBBLING_PHASE: number;
328
+
329
+ CAPTURING_PHASE: number;
330
+
331
+ NONE: number;
332
+
333
+
334
+
335
+ }
336
+
337
+
338
+
339
+ class C_Xhr {
340
+
341
+ public XhrGet(url:string) {
342
+
343
+
344
+
345
+ let vvv = new clsOnloadEvent
346
+
347
+
348
+
349
+ vvv.detail.dt = xhr.responseText //←■ここでUndefinedでエラーとなってしまいます
350
+
351
+ vvv.detail.x = 100
352
+
353
+ vvv.detail.y = 200
354
+
355
+
356
+
357
+ const events = new CustomEvent("xxxonload", {
358
+
359
+ detail:clsOnloadEvent
360
+
361
+ })
362
+
363
+ dispatchEvent(events)
364
+
365
+
366
+
367
+ }
368
+
369
+ }
370
+
371
+ ```

1

質問の追加です。

2020/10/28 06:36

投稿

eojvkx2
eojvkx2

スコア3

test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,89 @@
111
111
  }
112
112
 
113
113
  ```
114
+
115
+
116
+
117
+ 戻り値が複数ある場合、detailの部分をクラス指定したいの
118
+
119
+ ですが方法はありますでしょうか。
120
+
121
+ (※VS TyepScriptでインテリセンスを使用したいためです)
122
+
123
+
124
+
125
+
126
+
127
+ ```ここに言語を入力
128
+
129
+ const events = new CustomEvent("xxxonload", {
130
+
131
+ detail: { dt : xhr.responseText,
132
+
133
+ x : 100,
134
+
135
+ y : 200,
136
+
137
+ }
138
+
139
+ })
140
+
141
+
142
+
143
+ //戻り値用のクラス
144
+
145
+ class xxxOnloadEvent {
146
+
147
+ public dt : string
148
+
149
+ public x : number
150
+
151
+ public y : number
152
+
153
+ }
154
+
155
+
156
+
157
+ //イベントリスナー
158
+
159
+ addEventListener("xxxonload", aaakansuu.bind (evt), true)
160
+
161
+
162
+
163
+ //イベント受信関数
164
+
165
+ //★★evt:xxxOnloadEventと型を指定したいです!!!
166
+
167
+ public aaakansuu(evt: xxxOnloadEvent): void {
168
+
169
+ let getdt
170
+
171
+ let getx
172
+
173
+ let gety
174
+
175
+ let aaa:any
176
+
177
+
178
+
179
+ //aaa = evt
180
+
181
+ //getdt = evt.detail.dt ←■これだとインテリセンスでない。
182
+
183
+ //getx = evt.detail.x
184
+
185
+ //gety = evt.detail.y
186
+
187
+
188
+
189
+ getdt = evt.dt
190
+
191
+ getx = evt.x
192
+
193
+ gety = evt.y
194
+
195
+ }
196
+
197
+
198
+
199
+ ```