在Typescript中通过Webpack导入Jade模板

我试图抓住目前的前端技术,并希望使用Webpack加载Jade模板。 使用Javascript,这个按预期工作。

app.js

 import * as foo from "html!jade-html!./header.jade"; document.write(foo.default); 

但是,如果我把它重命名为app.ts ,内容不变, webpack要构build:

 ERROR in ./app.ts (5,22): error TS2307: Cannot find module 'html!jade-html!./header.jade'. 

我很惊讶模块加载语义会突然改变使用TypeScript。 是什么赋予了?

奖励积分:这个Jade加载片断可以写得更短吗?

TypeScript为import关键字赋予特殊的含义(期待实际的模块)。 你应该定义一个require函数并使用var foo = require('...') (注意var而不是import )。

以下是ts-loader文档中的require定义示例。

 declare var require: { <T>(path: string): T; (paths: string[], callback: (...modules: any[]) => void): void; ensure: (paths: string[], callback: (require: <T>(path: string) => T) => void) => void; };