Я недавно ввел новый код в свой код. Кажется, все в порядке, но при компиляции приложения я получаю сообщение об ошибке. Вот те части приложения:Пользовательская труба возвращает ошибку. :: TypeScript & Angular2
app.component.ts
файл:
import {SortPipe} from "./sort.pipe";
@Component({
templateUrl: './app.component.html',
pipes: [ SortPipe ]
})
sort.pipe.ts
файл:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sort'
})
export class SortPipe implements PipeTransform {
private ts: number;
transform(array: Array<any>): Array<any> {
array.sort((a: any, b: any) => {
if (a.ts < b.ts) {
return -1;
} else if (a.ts > b.ts) {
return 1;
} else {
return 0;
}
});
return array;
}
}
app.component.html
файл:
<tr *ngFor="let elem of (_values | sort)">
Ошибка, который я получаю:
ERROR в [по умолчанию] C: \ Users \ app.component.ts: 11: 2 Аргумент типа «{селекторного: строка; шаблон: любой; стили: any []; pipe: typeof SortPipe []; } 'не присваивается параметру типа «Компонент». Литерал объекта может указывать только известные свойства, а «pipe» не существует в типе «Компонент».
Я не знаю, почему это происходит, потому что я прочитал некоторую информацию о SO об этой проблеме и ее решении в большинстве случаев просто включить имя канала в app.module.ts
. Мой модуль выглядит (уменьшенная версия):
import { SortPipe } from './sort.pipe';
@NgModule({
declarations: [
SortPipe
]
})
export class AppModule { }
Если кто-нибудь есть какие-либо идеи, как это исправить, или какие-то намеки, пожалуйста, поделитесь.
Missing запятую после 'templateUrl:»/app.component.html''.? – rinukkusu
@rinukkusu Просто небольшая опечатка при переписывании кода на SO :) –