如何在TypeScript中使用“ as”语法

问题描述 投票:1回答:4

我正在做一个有角度的项目。运行良好。但是它没有通过掉毛测试。 This问题不是很有帮助。这是我得到的错误:

ERROR: C:/Users/.../monthpicker.component.ts:164:22 - Type assertion using the '<>' syntax is forbidden. Use the 'as' syntax instead.
Lint errors found in the listed files.

并且那行164在我的ts文件中:

testMethod() {
    this.text = (<HTMLInputElement>document.getElementById('rangeInput')).value;
}

我是Angular的新手。我不知道该怎么办。我无法删除<>,因为rangeInput是HTML中的输入元素:

<input id="rangeInput" [ngModel]="text" placeholder="Select range" />

请帮助我。如何解决此问题并通过此棉绒测试。我正在使用Node v10.15.3

PS:该项目运行时没有错误或警告。仅在开始棉绒测试时在git push期间发生。

typescript
4个回答
3
投票

我还没有测试过,但是通常语法是;

testMethod() {
    this.text = (document.getElementById('rangeInput') as HTMLInputElement).value;
}

打个招呼。


1
投票
// When stand Alone

// To add before statement
// -/ <intendedType>StatementThatResolves();
const myCanvas1 = <HTMLCanvasElement>document.getElementById("something");
// To add after statement
// -/ StatementThatResolves() as intendedType;
const myCanvas2 = document.getElementById("something") as HTMLCanvasElement;

// When you need to group use ()

// To add before statement
// -/ <intendedType>StatementThatResolves();
const myCanvasHasWidth1 = (<HTMLCanvasElement>document.getElementById("something")).hasAttribute("width");
// To add after statement
// -/ StatementThatResolves() as intendedType;
const myCanvasHasWidth2 = (document.getElementById("something") as HTMLCanvasElement).hasAttribute("width");

为了更清楚起见,请尝试使用衬棉规则标准化您喜欢的浇铸方法。


1
投票

我认为您甚至不需要“ as”。您是否尝试过:

testMethod() {
    this.text = (document.getElementById('rangeInput')).value;
}

或如here中的>

const el:HTMLElement = document.getElementById('content');


0
投票

我强烈建议您删除document.getElementById,因为当您的项目由于在角度之外是完整的而变得更加复杂时,可能会带来很多问题。

© www.soinside.com 2019 - 2024. All rights reserved.