如何 enble/disable TypeScript 1.5 中的按钮?

How to enble/disable a button in TypeScript 1.5?

使用 VS 2013。安装 TypeScript 1.5 并按照 question/suggestion 升级后:

"Your project uses a version of TypeScript older than the version currently installed with Visual Studio. You may get errors if you try to build your project. Would you like us to upgrade the TypeScriptToolsVersion in your project file so you don't see this warning again?"

我遇到了一堆错误,例如:

错误 39 构建:属性 'disabled' 在类型 'HTMLElement' 上不存在。

关于这样的陈述:

document.getElementById("btnExcel").disabled = false;

带有 'disabled' 卷曲下划线。

https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes 上提到版本 1.5 时说: "Properties on resize, disabled, uniqueID, removeNode, fireEvent, currentStyle, runtimeStyle are removed from type HTMLElement"

现在我将这些 "erroneous" 语句改写如下:

document.getElementById("btnExcel").setAttribute('disabled', 'disabled');

我觉得这很奇怪。

能否在 TypeScript 1.5 中以类型安全的方式更优雅地表达这一点?你能举出两者的例子吗:启用和禁用?

感谢您的帮助!

应该有更简洁的方法来执行此操作:

var element = <HTMLInputElement> document.getElementById("btnExcel");
element.disabled = true;

或者如果您更喜欢单衬垫:

(<HTMLInputElement> document.getElementById("btnExcel")).disabled = true;

看来getElementById之类的应该是泛型方法,接受类型参数。也就是说,泛型方法不会为您提供类型转换所不能提供的任何东西。

我正在使用 TypeScript v 3.7.something。在这里

(document.getElementById('button') as HTMLInputElement).disabled = false;

优先。 (以@Martin 的回答为指导)

我在 Angular 9 中使用 "typescript": "~3.8.3"。 要成功禁用按钮,请尝试:

let button = <HTMLButtonElement> document.getElementById('confirmBtn');
button.disabled = true;

使用<HTMLInputElement>
解决了问题 试试这个..

var previous = <HTMLInputElement>document.getElementById('previous');

previous.disabled = true;