Búsqueda de sitios web

typescript - Angular 5 - Cargar los datos en bruto de un archivo local en una variable


Bastante nuevo en Angular/TypeScript, así que perdón si esto es obvio.

Usando Angular 5, estoy creando un servicio en el que uno de los endpoints debe devolver un archivo de datos almacenado localmente "tal cual".

Digamos que este servicio se llama my-service. Por lo tanto, el archivo del servicio es my-service.service.ts, y el archivo de datos local (en la misma carpeta) es my-service.service.data, que contiene datos como texto (el formato no importa).

Lo que me gustaría hacer es tener este método de servicio:

getData(): Observable<string> {
    return of(data);
}

donde data sería simplemente el contenido de texto de my-service.service.data, como una cadena.

Una posible solución que encontré (de https://stackoverflow.com/a/36661720/965834) es la siguiente:

declare module '*.data' {
    const content: string;
    export default content;
}

lo cual luego se usaría de esta manera:

import * as data from 'my-service.service.data';

pero la instrucción declare module no parece funcionar en ningún lugar dentro de un proyecto Angular 5 (incluyendo main.js), y siempre produce:

error TS2664: Nombre de módulo no válido en la ampliación, el módulo '*.data' no se puede encontrar.

(El mismo código parece funcionar en un archivo .ts simple dentro de un proyecto que no es de Angular, sin embargo.)

Ahora podría almacenar el archivo dentro de assets/ y cargarlo a través del cliente HTTP de Angular, pero preferiría mantener el archivo dentro de mi carpeta de servicios, ya que tiene sentido tenerlo allí.

Gracias de antemano por tu ayuda.