我有以下Javascript代码:

var now = new Date();
now.setDate(now.getDate() + 7);
document.getElementById('txtCreateGroupExpirationDate').valueAsDate = now;


当我将此代码放入TypeScript文件中时,TypeScript会出现以下错误:


  属性“ valueAsDate”在类型“ HTMLElement”上不存在


我的Javascript工作正常,并且valueAsDate是合法的属性,如Mozilla Developer Network所定义。此外,您可以看到在Microsoft Typescript Core中定义了此属性。

那我为什么会收到这个错误?我正在使用Typescript 2.0。

最佳答案

valueAsDate仅在HTMLInputElement上受支持,而TypeScript不知道txtCreateGroupExpirationDate是哪种元素。使用类型断言来更改表达式的类型:

(<HTMLInputElement>document.getElementById('txtCreateGroupExpirationDate')).valueAsDate = now;

07-28 07:35