【发布时间】:2021-04-07 09:23:39
【问题描述】:
为什么下面的代码不会导致编译时错误?
import * as React from 'react';
export class Test extends React.Component {
private _onReferenceUpdated = (ref: HTMLCanvasElement) => {
ref.width = 4; // This could throw, when ref is null
};
render(): JSX.Element {
return (
<canvas ref={this._onReferenceUpdated} />
);
}
}
ref 属性推断为
(JSX attribute) React.ClassAttributes<HTMLCanvasElement>.ref?: string | ((instance: HTMLCanvasElement | null) => void) | React.RefObject<HTMLCanvasElement> | null | undefined
这似乎是正确的(string 有点奇怪,但我想这通常只是用于属性)。 (ref: HTMLCanvasElement) => void 如何分配给(instance: HTMLCanvasElement | null) => void?
【问题讨论】:
标签: reactjs typescript tsx