我是打字稿,打字的新手。模糊地理解类型定义并尝试使用打字稿和角度材料设计来设置角度1.5项目。
我在typings> globals> angular-material中有角度材质类型定义。 我不知道我可以导入哪个模块以及在哪里检查。如果我像下面的例子那样,我得到一个例外:模块'材料'不可用!
import * as angular from 'angular';
import * as material from 'angular-material';
angular.module('app.services', []);
angular.module('app', ['app.services', 'material']);
typings中的index.d.ts的顶部> globals> angular-material是
declare module 'angular-material' {
var _: string;
export = _;
}
declare namespace angular.material { ...}
提前致谢。
答案 0 :(得分:1)
应该是这样的,
angular.module('app.services', []);
angular.module('app', ['app.services', 'ngMaterial']);
答案 1 :(得分:0)
你不应该从角材料中导入' 只需添加对typings的引用:
/// <reference path="../typings/angular-material/angular-material.d.ts" />
(务必先安装角度材料的打字)
然后使用:
angular.module('app.services', []);
angular.module('app', ['app.services', 'ngMaterial']);
答案 2 :(得分:0)
您应该在定义材料提供者时删除单引号,例如
import * angular from 'angular';
import * as material from 'angular-material';
angular.module('app.services', []);
angular.module('app', ['app.services', material]);
这将解决您的问题。
同样,对于导入材料样式表,您可以使用以下代码。
import 'angular-material/angular-material.css';
对于没有类型定义的库,您可以使用以下代码。
import * as angular from 'angular';
require('../../../node_modules/angular-messages');
angular.module('app.services', []);
angular.module('app', ['app.services', 'ngMessages']);
注意:这里你应该使用字符串来定义提供者
答案 3 :(得分:0)
小,我希望有用,另外(我最近遇到的经验)。如果你需要在TS单元测试中使用angular-material
,你也需要将它导入到spec文件中(而在主代码中你只需要导入一次并在主模块中设置为依赖)。然后在顶部import 'angular-material';
就足够了,并为相应的打字添加必要服务的变量,例如: let dialog:ng.material.IDialogService;