在打字稿组件中使用'import * as'会出错 -
Posted
技术标签:
【中文标题】在打字稿组件中使用\'import * as\'会出错 -【英文标题】:Using 'import * as' in a typescript component gives an error -在打字稿组件中使用'import * as'会出错 - 【发布时间】:2017-05-28 22:56:20 【问题描述】:我正在尝试将 html 模板导入打字稿 component 并且它给了我一个错误。我正在使用 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;;控制器:typeof HomeCon...' 不可分配给“IComponentOptions”类型的参数。 属性“模板”的类型不兼容.. 类型 'typeof '.html'' 不可分配给类型 'string | ((...args: any[]) => 字符串) | (string | ((...args: any[]) => string))[]'。 类型 'typeof'.html'' 不能分配给类型 '(string | ((...args: any[]) => string))[]'。 类型 'typeof '*.html'' 中缺少属性 'find'。
如果我将template: template.toString()
添加到 HomeComponent,它似乎可以工作。但这对我来说感觉不对。还有其他建议吗?
【问题讨论】:
你有html文件的模块声明吗? Is it possible to import an HTML file as a string with TypeScript?的可能重复 【参考方案1】:在你的类型声明的某个地方,你需要声明一个以 .html 结尾的模块
declare module '*.html'
const template: string;
export default template;
使用此声明,您的代码应该无需其他更改即可运行
【讨论】:
这是正确的。但是请考虑提到重要的声明需要更新,因为它目前是错误的以上是关于在打字稿组件中使用'import * as'会出错 -的主要内容,如果未能解决你的问题,请参考以下文章
样式组件 + 打字稿:“as”不可分配给类型 IntrinsicAttributes