打字稿.length返回未定义

Adr*_*ris 7 typescript angular

这个问题使我发疯...

我有这个代码:

if (control.value==null||control.value == "" || control.value == " " || control.value.length != 5) {
     // do something
}
Run Code Online (Sandbox Code Playgroud)

我的问题:control.value.length总是返回“未定义”。

我尝试使用像这样的字符串变量,但结果是相同的。

var curVal: string = control.value;
if (curVal==null||curVal== "" || curVal == " " || curVal != 5) {
     // do something
}
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

编辑:精度:我的control.value不为null或为空,我测试值为59000

此代码:

console.log(control.value + ' - ' + control.value.length);
Run Code Online (Sandbox Code Playgroud)

记录此:59000-未定义

编辑2:谢谢你,解决了。问题是我的control.value是数字而不是字符串

Thi*_*ier 5

我认为您输入的类型不是字符串而是数字。

@Component({
  selector: 'my-app',
  template: `
    <div>
      <input type="number" [ngFormControl]="ctrl">
    </div>
  `
})
export class AppComponent {
  constructor() {
    this.ctrl = new Control();
    this.ctrl.valueChanges.subscribe((val) => {
      console.log(val.length);
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,由于数字没有属性,因此val.length返回。undefinedlength

有关更多详细信息,请参见此plunkr:https ://plnkr.co/edit/5yp5ms9XY5Z3TEE2qYIh?p = preview 。

  • 所以你可以试试这个:`val.toString()。length` (9认同)