luc*_*ada 25 typescript typescript1.5
使用VS 2013.安装了TypeScript 1.5并按照问题/建议升级后:
"您的项目使用的TypeScript版本早于Visual Studio当前安装的版本.如果您尝试构建项目,可能会出现错误.您是否希望我们在项目文件中升级TypeScriptToolsVersion,这样您就不会看到此警告再次?"
我遇到了一堆错误:
错误39构建:"HTMLElement"类型上不存在属性"已禁用".
在以下陈述:
document.getElementById("btnExcel").disabled = false;
Run Code Online (Sandbox Code Playgroud)
"禁用"卷曲下划线.
在https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes引用版本1.5时,它说:"调整大小,禁用,uniqueID,removeNode,fireEvent,currentStyle,runtimeStyle上的属性将从HTMLElement类型中删除"
现在我改写了这样的"错误"陈述:
document.getElementById("btnExcel").setAttribute('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来很奇怪.
在TypeScript 1.5中,这可以通过类型安全的方式更优雅地表达吗?你能举两个例子:启用和禁用?
谢谢你的帮助!
Mar*_*tin 47
应该有一个更清洁的方法来做到这一点:
var element = <HTMLInputElement> document.getElementById("btnExcel");
element.disabled = true;
Run Code Online (Sandbox Code Playgroud)
或者如果你喜欢一个班轮:
(<HTMLInputElement> document.getElementById("btnExcel")).disabled = true;
Run Code Online (Sandbox Code Playgroud)
似乎getElementById等等应该是通用方法并接受类型参数.也就是说,一个通用的方法不会给你任何类型转换的东西.
小智 8
我正在使用 TypeScript v 3.7.something。在这里
(document.getElementById('button') as HTMLInputElement).disabled = false;
Run Code Online (Sandbox Code Playgroud)
是首选。(以@Martin 的回答为指导)