Articles of typescript

Webpack和TypeScript:无法parsingnode.d.ts中的模块“child_process”

我试图让webpack,typescript和react.js通过awesome- typescript -loader一起工作,但是我经常得到错误。 我在版本0.3.0-rc.2和webpack 1.8.9上使用了很棒的打字机加载器 这是我的webpack.config.js: module.exports = { entry: './ui/index.ts', output: { path: __dirname + '/build-ui', filename: 'app.js', publicPath: 'http://localhost:8090/assets' }, module: { loaders: [ { test: /\.jsx$/, loader: 'jsx-loader?insertPragma=React.DOM&harmony' }, { test: /\.css$/, loader: "style-loader!css-loader" }, { test: /\.scss$/, loader: "style-loader!css-loader!sass-loader" }, { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192' }, { test: /\.ts$/, loader: 'awesome-typescript-loader' […]

Angular2:并发不被识别为内部或外部命令

当使用npm start运行server2 for angular2时出现错误,说明并发不能被识别为内部或外部命令,为什么会发生这种types的错误 这里是package.json: { "name": "contactlistapp", "version": "1.0.0", "description": "The app", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "tsc": "./node_modules/.bin/tsc", "tsc:w": "./node_modules/.bin/tsc -w", "serve": "./node_modules/.bin/live-server –host=localhost –port=3000 .", "start": "concurrent \"npm run tsc:w\" \"npm run serve\" " }, "author": "Sarah", "license": "ISC", "dependencies": { "express": "^4.13.3", "angular2": "2.0.0-beta.0", "systemjs": […]

TypeScript不会parsing外部模块(node.js)

我想在我的节点应用程序中使用moment.js,所以我使用节点的包pipe理器npm安装了moment.js: npm install moment@2.4.0 只是为了安全起见,我检查了时间没有安装在全球,安装的版本是真正的版本2.4.0(版本2.4.0为了使用正确的d.ts文件…) require("moment").version 好吧,似乎是好的。 我也使用最新版本的TypeScript(0.9.5)。 所以,现在我将下面的文件添加到我的项目根目录https://github.com/borisyankov/DefinitelyTyped/blob/master/moment/moment.d.ts并引用该文件: /// <reference path="moment.d.ts" /> 现在,它应该使用TypeScripts导入关键字: import m = require("moment"); 用下面的命令编译 tsc app.ts –module commonjs 产生以下错误 /home/unknown/temp/test/app.ts(3,1):错误TS2071:无法parsing外部模块的“时刻”。 /home/unknown/temp/test/app.ts(3,1):错误TS2072:模块不能被别名为非模块types。 为什么会发生这种错误? 我如何解决它?

dependency injection库 – 重命名注入的值

我想按名称注入lodash,如下所示: let val = function(lodash){ // lodash will be injected, simply by using require('lodash'); }; 但是说我想重命名导入,我想要做这样的事情: let val = function({lodash:_}){ }; 要么 let val = function(lodash as _){ }; 有没有办法做到这一点与ES6 / ES7 / ES8或TypeScript? 请注意,这个DI框架比只需要('x')做更多的工作…它将尝试注入其他值首先,如果没有其他的存在,那么它将尝试要求的价值。 还要注意,这里的要求是,当你调用val.toString()时,“lodash”将被视为参数名称。 但是在函数体内的运行时会看到_而不是lodash。 这是因为为了注入lodash,我们调用fn.toString()来获取参数名称。

如何使用gulp在不同的文件中创buildTypescript源代码,而不是在JavaScript文件中?

我有一个项目,我正在使用gulp。 我想打字稿文件转换为JavaScript,并有源地图也。 这是我现在所拥有的: var sourcemaps = require('gulp-sourcemaps'); var typescript = require('gulp-typescript'); gulp.task('typescript', function () { gulp.src('app/**/*.ts') .pipe(typescript()) .pipe(sourcemaps.init()) .pipe(sourcemaps.write()) .pipe(gulp.dest('app')) }); 这部分工作,但源代码都出现在JavaScript内部。 任何人都可以告诉我,我可以如何使它为每个JavaScript创build一个源代码文件,而不是有地图里面?

包装许多内部模块输出打字稿

我正在查看在节点内使用打字稿,目前我习惯通过纯粹使用内部模块的///<reference…/>语法来使用打字稿。 但是,对于较大的项目,这可能会变得笨重,因为您可以使用引用其他模块的模块来引用相关链接。 因此,对于这个节点项目,我正在考虑尝试将所有逻辑组件作为内部模块/类进行分组,所以它们将全部在内部互相引用,而通过一个外部模块公开它们,从而暴露底层类等。 这种方式的语法将非常类似现有的需要机制的节点,如: import database = require("my-external-db-module.ts"); var connection = new database.Connection(someUrl); 而不是 ///<reference path="my-internal-db-modules.ts" /> var connection = new Database.Connection(someUrl); 我想象的语法是这样的: ///<reference path="all-my-internal-module-files-etc.ts" /> ///<reference path="…" /> export module SomeExposingModule { // Not quite sure what to put in here to expose the internal modules } 那么,围绕这类事情或其他任何类似的事情有什么最好的做法,或者每个人都坚持使用内部模块来做复杂的事情吗?

从gulp任务运行一个npm脚本

如何在gulp任务中运行npm脚本命令? 的package.json "scripts": { "tsc": "tsc -w" } gulpfile.js gulp.task('compile:app', function(){ return gulp.src('src/**/*.ts') .pipe(/*npm run tsc*/) .pipe(gulp.dest('./dist')) .pipe(connect.reload()); }); 我想这样做是因为运行npm run tsc不会给我任何错误,但是如果我使用gulp-typescript编译.ts那么我会得到一堆错误。

TypeScript:我可以导入一个文件夹而不必写一个index.ts文件吗?

如果一个项目的大多数目录包含不超过2-3个TypeScript文件,并且在导入其他地方的包含目录时应该可以访问它们的所有导出,则会导致大量的index.ts文件具有可预测的内容。 例 目录: my-component my-component-config.ts my-component.ts index.ts index.ts包含什么? 当然,它包含 export * from "./my-component-config" export * from "./my-component" 这是显而易见的。 对于10个组件目录,这意味着:10 index.ts包含100%冗余信息的index.ts文件。 我怎样才能使TypeScript(/节点)隐式创buildindex.ts文件,不需要存储在硬盘上?

如何使用TypeScript制作一个shell可执行节点文件

通常在节点文件,我只是把 #!/usr/bin/env node 在顶部,并使其可执行来创build一个可以从bashterminal运行的文件。 但是,如果我在一个Typescript文件中这样做,编译器会说“错误TS1001:意外的字符”#“”,并拒绝编译它。 那么如何使用Typescript制作一个shell可执行文件?

在TypeScript中将类导出为Node.js模块

我熟悉TypeScript中的export关键字,以及两种使用TypeScript从Node模块中导出事物的规范方法(当然,也可以使用TypeScript模块,但是它们比我所寻找的更进一步): export class ClassName { } 和一系列 export function functionName () { } 但是,我通常写我的模块的方式,以便他们以后导入作为可实例化闭包,是: var ClassName = function () { }; ClassName.prototype.functionName = function () { }; module.exports = ClassName; 有没有一种方法,我可以使用TypeScript导出语法来做到这一点?