我得到一个错误,即使我定义了一个字符串,我得到一个错误,即使我定义了一个字符串

I'm getting an error even though I defined a string and I'm getting an error even though I defined a string

    import {Pipe, PipeTransform} from '@angular/core';
import {Product} from "./product";

@Pipe({
  name: 'productFilter'
})
export class ProductFilterPipe implements PipeTransform {

  transform(value: Product[], filterText?: string): Product[] {
    filterText = filterText?filterText.toLocaleLowerCase(): null

    return filterText ? value.filter((p: Product) => p.name
      .toLocaleLowerCase().indexOf(filterText) !== -1) : value;
  }

}

TS2322:类型 'string | null' 不可分配给类型 'string | undefined'。
类型 'null' 不可分配给类型 'string | undefined' .

TS2345:'string | undefined' 类型的参数不可分配给 'string' 类型的参数。
类型 'undefined' 是不可分配给类型 'string'.

enter image description here

试试这个

import {Pipe, PipeTransform} from '@angular/core';
import {Product} from "./product";

@Pipe({
  name: 'productFilter'
})
export class ProductFilterPipe implements PipeTransform {

  transform(value: Product[], filterText?: string): Product[] {
    let pattern = filterText ? filterText.toLocaleLowerCase(): null;

    return pattern ? value.filter((p: Product) => p.name.toLocaleLowerCase().indexOf(pattern) !== -1) : value;
  }

}

如果 filterText 未传递给函数,那么您会收到该错误,因为您正试图将某些内容分配给未定义。