如何导入打字稿降价(.MD)文件
我试图导入打字稿自述文件,但得到“错误模块未找到”如何导入打字稿降价(.MD)文件
我的TS码
import * as readme from "./README.md"; // here i am getting error module not found
我也试过:分型.d.ts
declare module "*.md" {
const value: any;
export default value;
}
我发现,在打字稿2.0 https://github.com/Microsoft/TypeScript/wiki/What的全新功能于打字稿#打字稿-20 便相继推出了‘模块名称通配符’使用我们可以包含任何扩展文件。
我刚刚跟着例子https://hackernoon.com/import-json-into-typescript-8d465beded79这是为json文件我遵循相同的降价文件,但没有成功。
我没有使用的WebPack任何装载机,所以我只是想它只是从打字稿
在你的链接例如,他们正在导入JSON,而不是降价。他们能够导入JSON,因为有效的JSON也是有效的JavaScript/TypeScript。 Markdown是无效的TypeScript,所以像这样导入它就不会像那样工作。
如果您想在运行时访问Markdown文件,请发出AJAX请求以检索其内容。如果你真的需要它建立在你自己的JavaScript本身,那么你将需要有某种构建脚本。你提到你没有使用Webpack,但是通过添加一个模块规则/\.md$/
到raw-loader
,它将能够实现你正在寻找的东西。你需要使用某种等价物。
编辑:
看来你每天学习新的东西。正如OP在评论中指出的那样,TypeScript 2.0支持导入非代码资源。
尝试以下方法:然后
declare module "*!txt" {
const content: string;
export default content;
}
import readme from "./README.md!txt";
readme
的值应为包含README.md的内容的字符串。
如果你在typescript changelog 2.0中看到https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-20,他们已经在模块名称中引入了“通配符” –
我完全改正了,之后看着那个链接@LokeshDaiya。它确实支持非代码导入,您只需在模块声明中指定相关的内容类型和模式即可。 – Mitch
我试过这个解决方案,但得到了这个erro module.js:472 throw err; ^ 错误:找不到模块'./README.md!txt' –
markdown不是json,你应该使用实际的http请求来加载它。 – toskv
我知道markdown不是json。我只是提到这个解决方案,并为降价文件执行 –
@LokeshDaiya你是否已经找到了解决方案? –