如何在TypeScript 1.5中启用/禁用按钮?

时间:2015-07-26 10:35:23

标签: typescript typescript1.5

使用VS 2013.安装了TypeScript 1.5并按照问题/建议升级后:

"您的项目使用的TypeScript版本早于Visual Studio当前安装的版本。如果您尝试构建项目,可能会出错。您是否希望我们升级项目文件中的TypeScriptToolsVersion,以便您再也看不到此警告?"

我遇到了一堆错误:

错误39构建:属性'已禁用'类型' HTMLElement'。

上不存在

对于以下陈述:

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

禁用'卷曲下划线。

https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes上,参考1.5版,它说: "调整大小,禁用,uniqueID,removeNode,fireEvent,currentStyle,runtimeStyle上的属性将从HTMLElement类型中删除"

现在我改写那些"错误的"像这样的陈述:

document.getElementById("btnExcel").setAttribute('disabled', 'disabled');
对我来说,这看起来很奇怪。

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

感谢您的帮助!

4 个答案:

答案 0 :(得分:41)

应该有一种更简洁的方法:

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

或者如果您更喜欢一个班轮:

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

似乎getElementById等应该是通用方法并接受类型参数。也就是说,一般的方法不会给你任何类型转换的东西。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

。 (由@Martin的答案指导)

答案 3 :(得分:0)

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

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

previous.disabled = true;