Enzyme typescript – 无法设置 [object Event] 的属性目标,该目标在 Function.assign 处只有一个 getter

d68*_*440 5 typescript enzyme preact

代码:

...
wrapper.find('input').simulate('input', { target: {value: 's'}})
Run Code Online (Sandbox Code Playgroud)

命令:

jest test
Run Code Online (Sandbox Code Playgroud)

结果

Cannot set property target of [object Event] which has only a getter at Function.assign
Run Code Online (Sandbox Code Playgroud)

node_modules/enzyme-adapter-preact-pure/build/src/MountRenderer.js 中出现错误

    var event = new Event(eventName, {
        bubbles: args.bubbles,
        composed: args.composed,
        cancelable: args.cancelable,
    });
    Object.assign(event, args);
Run Code Online (Sandbox Code Playgroud)

事件是来自 typescript/libs/lib.d.ts 的接口

interface Event {
    ...
    readonly target: EventTarget | null;
    ...
}
Run Code Online (Sandbox Code Playgroud)

目标是只读的,如何设置自定义目标?

包.json

"@types/jest": "^24.0.19",
"@types/jquery": "^3.3.31",
"enzyme": "^3.10.0",
"enzyme-adapter-preact-pure": "^2.1.0",
"enzyme-to-json": "^3.4.3",
"jest": "^24.9.0",
"preact": "^8.4.2",
"preact-context": "^1.1.4",
"preact-redux": "^2.0.3",
"redux": "^4.0.1",
"ts-jest": "^24.1.0",
"ts-loader": "^4.5.0",
"typescript": "^3.5.3",
"webpack": "^4.39.1",
"webpack-cli": "^3.3.9"
Run Code Online (Sandbox Code Playgroud)