我得到一个错误,即使我定义了一个字符串,我得到一个错误,即使我定义了一个字符串
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 未传递给函数,那么您会收到该错误,因为您正试图将某些内容分配给未定义。
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 未传递给函数,那么您会收到该错误,因为您正试图将某些内容分配给未定义。