在typescript组件中使用'import * as'会出错 -

时间:2017-01-13 14:27:45

标签: angularjs typescript

我正在尝试将html模板导入到打字稿组件中并且它给我一个错误。我正在使用Angular 1.5。

该组件看起来像这样......

import * as template from './home.template.html';
import { HomeController } from './home.controller';

export const HomeComponent = {
    bindings: {
        conf: '<',
    },
    controller: HomeController,
    template,
};

这就是这样添加到模块......

import * as angular from 'angular';

import { HomeComponent } from './home.component';

export const HomeModule = angular.module('home', [])
.component('home', HomeComponent);

我得到的错误是......

  

类型'{bindings:{conf:string;}; controller:typeof HomeCon ...'不能分配给'IComponentOptions'类型的参数。    属性“模板”的类型不兼容..      类型'typeof' .html''不能分配给'string |' ((... args:any [])=&gt; string)| (string |((... args:any [])=&gt; string))[]'。        类型'typeof' .html''不能分配给''(string |((... args:any [])=&gt; string))[]'。          类型'typeof'* .html''中缺少属性'find'。

如果我将template: template.toString()添加到HomeComponent,它似乎可以正常工作。但这对我来说并不合适。还有其他建议吗?

1 个答案:

答案 0 :(得分:2)

在类型声明中的某处,您需要声明以.html结尾的模块

declare module '*.html' {
    const template: string;
    export default template;
}

使用此声明,您的代码应该在没有其他更改的情况下运行