2017-06-21 54 views
1

我试图导入打字稿自述文件,但得到“错误模块未找到”如何导入打字稿降价(.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任何装载机,所以我只是想它只是从打字稿

+5

markdown不是json,你应该使用实际的http请求来加载它。 – toskv

+0

我知道markdown不是json。我只是提到这个解决方案,并为降价文件执行 –

+0

@LokeshDaiya你是否已经找到了解决方案? –

回答

2

在你的链接例如,他们正在导入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的内容的字符串。

+0

如果你在typescript changelog 2.0中看到https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-20,他们已经在模块名称中引入了“通配符” –

+0

我完全改正了,之后看着那个链接@LokeshDaiya。它确实支持非代码导入,您只需在模块声明中指定相关的内容类型和模式即可。 – Mitch

+1

我试过这个解决方案,但得到了这个erro module.js:472 throw err; ^ 错误:找不到模块'./README.md!txt' –