Как получить доступ к объекту через строковые литералы в Angular - PullRequest
0 голосов
/ 04 октября 2019

Я хочу показать пользователям, которых я получил в переменной «data»

Я получил предупреждение в режиме онлайн, в котором говорится, что «доступ к объекту через строковые литералы запрещен (no-string-literal)»

this.crud = data['msg'];

Мой класс:

export class CrudClass {
    public id?: string;
    public  name: string;
    public email: string;
    public password: string;
}

Мой компонент:

export class ListComponent implements OnInit {
    private crud: CrudClass[];

    constructor(private router: Router, private apiRoutes: ApiRoutesService) { }

    ngOnInit() {
        this.readApp();
    }

    readApp() {
        this.apiRoutes.readApp().subscribe(
            data => {
                console.log(data);
                this.crud = data['msg'];
            },
            error => {
                console.log(error);
            }
        );
    }
}

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

Вы можете сделать это несколькими способами

Первый Просто отключите правило

/* tslint:disable:no-string-literal */
 this.crud = data['msg'];
/* tslint:enable:no-string-literal */

Второй Используйте переменную вместо строкового литерала

изменить

this.crud = data['msg'];

на

let key='msg';
this.crud = data[key];

Или отключить глобально no-string-literal: false in tslint.config.json

Связанные SO сообщение

0 голосов
/ 04 октября 2019

Вы можете попробовать установить значение объекта let на значение и установить для него свойство data

Like let dataKey = 'msg';this.crud = data [dataKey]

...