typescript TS 2540:无法分配给样式,因为它是只读属性

qgelzfjb  于 2023-02-25  发布在  TypeScript
关注(0)|答案(3)|浏览(1106)

我在我的TSX标记中创建了一个textarea元素,TS typechecker in Vim抱怨2540: Cannot assign to style because it is a read-only property。让textarea.style成为只读的有点奇怪,因为它可以被写入...


如何让错误信息消失?我应该将代码中的input变量强制转换为其他变量吗?

gmxoilav

gmxoilav1#

我用以下公式解决了这个问题:

input.setAttribute('style', 'white-space: pre; position: absolute; left: -9999px;');

显然,“TypeScript在元素上没有样式属性。”正如related Stackoverflow answer中提到的那样。

kx7yvsdv

kx7yvsdv2#

显然,我已经有答案了...
说明输入变量是特定类型使它工作。

const input: HTMLTextAreaElement = document.createElement('textarea')                                                                                                   
const currentTarget = e.currentTarget as HTMLDivElement

这可能是因为createElementcan create all kinds of elements和Typescript无法知道是哪一个,因为它是基于输入字符串的,所以你需要说出它返回的是什么。

2ul0zpep

2ul0zpep3#

或者你可以使用input.style.cssText
input.style.cssText = "white-space:pre; position:absolute; left:-9999px;";

相关问题