Typescript 2通配符模块

时间:2017-03-16 09:09:35

标签: angular module wildcard typescript2.2

我在使用angular 2应用程序导入html模板时遇到了麻烦。

在globals.d.ts

 declare module "*.html" {
    const content: string;
    export default content;
}

在app.component.ts

import { Component } from '@angular/core';

import './app.component.css';
import * as template from './app.component.html';

@Component({
    selector: 'app',
    template: <string>template
})
export class AppComponent {
    constructor() {
        console.log('I am App');
    }
}

该应用程序正常运行并且模板已加载但我收到此错误TS2352:键入&#39; typeof&#34; * .html&#34;&#39;无法转换为&#39; string&#39;。有人有解决方法吗?

我想这样做。

import template from './app.component.html';

@Component({
    template: template
})
...

但是转化后的代码就像这样结束了。

var app_component_html_1 = __webpack_require__(653);
...
template: app_component_html_1.default

app_component_html_1是我需要的字符串。他们为什么要添加.default?

1 个答案:

答案 0 :(得分:4)

export default content;修改为export = content;解决了此打字稿错误。

Not work

Worked

并且已编译的代码应该相应地工作(因为&#39;默认&#39;已被删除)。