Typescript Postmessage mislykkes med ett argument, og to


Ha Typescript-prosjekt.

Når dette: postMessage(result);

Jeg forstår dette..

Forventet 2-3 argumenter, men fikk 1.Forventet 2-3 argumenter, men fikk 1.

Når dette: postMessage(result, '*');

Jeg forstår dette..

Uncaught TypeError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': Overload resolution failed.
    at runParser

Hva vil Typescript her? Er det ett eller to argumenter? Og hvorfor forårsaker dette et problem?

Svar #1

Hvis du bruker MessageChannels port postMessage-funksjon, må du sende bare én parameter.

event.ports[0].postMessage(data)

Hvis du bruker window.postMessage, må du sende med 2 eller 3 parametere.

window.postMessage(data, origin, [transfer])

Svar #2

Du må legge til webworker i tsconfig.json-en din eller opprette et eget TS-prosjekt for arbeideren din, fordi postMessage har en annen API i arbeideren og i nettlesermiljøet.

"compilerOptions" : {
    "lib": [
        "webworker"

Relaterte artikler