Это просто соглашение. Строки могут быть использованы как типы, так что это «безопасно» с этой точки зрения. В какой-то момент ответственность за выбор значимых строк возлагается на разработчика, верно?
Я склонен делать это, чтобы поддерживать последовательность для каждого набора действий:
import { createAction, props } from '@ngrx/store';
import { Config } from '../models/config.model';
const appAction = '[App]';
export const getConfig = createAction(
`${appAction} Get Config`
);
export const setConfig = createAction(
`${appAction} Set Config`,
props<{ config: Config }>()
);
Вот тангенциально связанная статья о действиях и создателях действий. Интересное чтиво, но по-настоящему не отвечаю на ваш вопрос.