Как назначить тип для строкового ввода в качестве объекта для нажатия - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть forEach, который принимает строку и толкает объект. Как бы я набрал это соответствующим образом?

const descriptionText: string = this.args.post.description || '';
const descriptionParts: string[] = descriptionText.split(/\s+/g);
let parsedDescriptionParts: object[] = [];

descriptionParts.forEach((text: string) => {
    let parts = {
       text,
       isLink: false
    }
    if (text.match('^(#|@)')) {
       parts = {
          text: `<span class=${this.boldClass}>${text}</span>`,
          isLink: true
       };
    }
    parsedDescriptionParts.pushObject(parts);
});

return parsedDescriptionParts;

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020
let descriptionParts: string[] = ['hello', '#goodbye']                                                                                     
let boldClass: string = 'abc'

let parsedDescriptionParts: object[] = descriptionParts
  .map(text => text.match('^(#|@)')
    ? { text: `<span class=${boldClass}>${text}</span>`, isLink: true }
    : { text, isLink: false }
  )

console.log(parsedDescriptionParts)
0 голосов
/ 02 апреля 2020

Мне кажется, что forEach никогда не имеет вывода.

Это определение forEach в lib.es5.d.ts

forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;

Так что, возможно, ваш тип: (string) => void

...