输出打字稿中的模块
我是打字稿的新手,我正在使用Node.js 5.10.1和tsc 1.8.9。 我试图创build一个简单的ts文件,其中包含一个我可以使用的函数。
由于我使用外部模块,因为我的应用程序是基于Node.js我正在使用typescript-require第三库模块。
这是我的my-util.ts
文件:
"use strict"; var fs = require('fs'); export module MyUtil { export function isFileReadable(filePath:string, callback:Function) { fs.access(filePath, fs.R_OK, (err) => { callback(err, null); }); } }
现在…在当前的主ts
文件中是空的。 我想要求my-util.ts
文件并使用函数isFileReadable
。
我正确的添加导出到模块MyUtil
? 我如何要求?
我会build议导出为静态方法的类。 模块现在更适合于.d.ts文件。 在es2015规范着陆之前,他们曾经是模块的总称。 以下答案假设您正在编译所有的TypeScript代码。
试试这个:
"use strict"; var fs = require('fs'); export class MyUtil { static isFileReadable(filePath:string, callback:Function) { fs.access(filePath, fs.R_OK, (err) => { callback(err, null); }); } }
然后使用它(使用标准节点导入),你可以这样做:
var util = require('./my-util').MyUtil; util.isFileReadble(...)
使用ES6导入你可以这样做:
import {MyUtil} from './my-util'; MyUtil.isFileReadble(...)
- 无法在typescript / angular2环境中设置持久会话,在后端设置nodejs
- angular2-rc1 http.post不能正常工作
- 如何在@types上为范围/命名空间包安装TypeScript声明?
- 找不到模块'angular2 / angular2'
- 正确的解释NodeJS / Typescript导出/导入?
- 扩展快速应用界面
- 为什么在打字稿中声明一个全局的`name`variables,我可以避免使用它吗?
- vscode intellisense node.js适用于.js文件 – 不是.ts文件
- @ types / node和VS代码:因为注释格式化,IntelliSense不起作用