繁体   English   中英

类型“数字”不可分配给类型“字符串”。 ts(2322)

[英]Type 'number' is not assignable to type 'string'. ts(2322)

所以我正在尝试创建一个用于调整容器大小的拖动条。

var handler = document.querySelector('.handler') as HTMLElement;
var wrapper = handler!.closest('.wrapper') as HTMLElement;
var boxA = wrapper!.querySelector('.box') as HTMLElement;
var isHandlerDragging = false;
document.addEventListener('mousedown', function(e) {
  if (e.target === handler) {
    isHandlerDragging = true;
  }
});

document.addEventListener('mousemove', function(e) {
  if (!isHandlerDragging) {
    return false;
  }
  var containerOffsetLeft = wrapper!.offsetLeft;
  var pointerRelativeXpos = e.clientX - containerOffsetLeft;  
  boxA!.style.width = (Math.max(boxAminWidth, pointerRelativeXpos - 8)) + 'px';
  boxA!.style.flexGrow = 0;   //Type 'number' is not assignable to type 'string'.ts(2322)

如何声明boxA ,使其属于 number 类型?

我是 typescript 的新手,因此非常感谢任何建议。

您不想更改boxA的类型。 错误说boxA..style flexGrow一个字符串,但您试图为其分配一个数字。

所以改为尝试:

boxA!.style.flexGrow = "0";

此外,您实际上并不需要使用非空断言运算符! 操作员。 由于您已经断言boxAHTMLElement ,因此 Typescript 知道它具有style属性。

所以,最后你可以这样写:

boxA.style.flexGrow = "0";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM