使用打字稿

时间:2016-09-04 18:08:38

标签: javascript angularjs typescript angular-material

我是打字稿,打字的新手。模糊地理解类型定义并尝试使用打字稿和角度材料设计来设置角度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 { ...}

提前致谢。

4 个答案:

答案 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;