对于Angular / TypeScript来说很新,如果这很明显,那就很抱歉。
使用Angular 5,我正在制作一项服务,其中一个端点必须“按原样”返回本地存储的数据文件。
假设此服务名为my-service
。因此,服务文件为my-service.service.ts
,本地数据文件(在同一文件夹中)为my-service.service.data
,其中包含数据作为文本(格式无关紧要)。
我想要做的是使用这种服务方法:
getData(): Observable<string> {
return of(data);
}
其中data
只是my-service.service.data
的文字内容,作为字符串。
我找到的潜在解决方案(来自https://stackoverflow.com/a/36661720/965834)如下:
declare module '*.data' {
const content: string;
export default content;
}
然后会像这样使用:
import * as data from 'my-service.service.data';
但是declare module
指令在Angular 5项目(包括main.js)中的任何地方似乎都不起作用,并且始终产生:
错误TS2664:扩充中的模块名称无效,模块'* .data' 无法找到。
(相同的代码似乎在非角度项目中的简单.ts文件中工作。)
现在我可以将文件存储在assets/
中并通过Angular的HTTP客户端加载它,但我更喜欢将文件保存在我的服务文件夹中,因为它只是有意义。
提前感谢您的帮助。