Tag: 打字稿

是否可以使用tsc命令将单个TypeScript文件编译为输出path?

在尝试从.js输出分离我的.ts源文件,我试图在TypeScript中实现一个正式的文件观察器,似乎为单个文件指定输出path的能力不存在。 该stream程,只是要清楚:我开始看我的整个src目录,对src/views/HomeView.ts进行更改,我希望节点拿起文件已被更改,并移动编译的版本到public/js/views/HomeView.js 。 使用tsc myfile.ts –out myfile.js它遍历所有的模块,并且以.ts文件存在的相同path编译每个模块,而不将最终文件放置在正确指定的path中。 但是,它确实创build了一个空的文件,我希望它最终结束。 我在想: 1)是否可以使用–out参数, 只编译一个文件? 我不希望它遍历导入和编译每一个单一的文件,但只是在编译时进行语法/错误检查(这只是一个次要的要求,没有必要)。 和 2)在编译器中是否有一个错误,阻止它正确合并/创build文件? 同样,– –out path指令中的最终输出是空的,但确实创build了一个文件。 任何帮助,将不胜感激。 *更新* 虽然我不想closures这个问题,但是我相信这仍然是一个问题,我继续实现了核心的TypeScript编译器来完成我所需要做的事情,完全绕过了tsc 。 有关更多信息和用法,请参阅https://github.com/damassi/TypeScript-Watcher 。

找不到模块'ts-node / register'

我想用摩卡来testing我的TypeScript / Angular2项目。 我尝试使用ts-node,如下所述: npm install -g ts-node 但运行时 mocha –require ts-node/register -t 10000 ./**/*.unit.ts 我得到一个错误 找不到模块'ts-node / register' 我在这里错过了什么?

Jest,Typescript,ts-jest:覆盖率稍微不正确

我正在使用TypeScript,Jest和ts-jest NPM模块来编写项目。 当我运行我的testing,我得到了一些覆盖面,但HTML报告是不正确的: 此外,一些function即使被称为是未经testing也被标记为未经testing。 我的package.json设置如下: { "jest": { "transform": { ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js" }, "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", "moduleFileExtensions": [ "ts", "tsx", "js" ], "testResultsProcessor": "<rootDir>/node_modules/ts-jest/coverageprocessor.js", "collectCoverage": true, "collectCoverageFrom": [ "src/**/*.{ts,tsx}" ], "coverageReporters": [ "html", "json" ] } } 我的configuration有问题吗?

使用TypeScript lib.core.d.ts而不是lib.d.ts

看来TypeScript编译器总是包含lib.d.ts或lib.es6.d.ts (取决于编译器的目标)。 在我们的应用程序中,我们有一个已经在lib.d.ts定义的WebSocket类。 我们正在Node.js下运行我们的应用程序,而不是在Web浏览器中运行,所以我们实际上并不需要lib.d.ts所有定义。 相反, lib.core.d.ts对我们lib.core.d.ts就足够了(当然会解决WebSocket冲突)。 是否可以告诉TypeScript编译器使用哪个全局types定义文件?

Angular 2 issue:typings:command not found

所以这可能会成为一个非常基本的问题,但它已经困扰了我好几天,实际上并没有find解决办法。 我正在使用npm从命令行安装types代码,它看起来运行良好,但是之后我input了任何input命令,它说这个命令不存在! 它是这样的: Kevyns-MacBook-Pro:~ kevynquiros$ sudo npm install typings –global Password: /Users/kevynquiros/npm/bin/typings -> /Users/kevynquiros/npm/lib/node_modules/typings/dist/bin.js typings@1.0.4 /Users/kevynquiros/npm/lib/node_modules/typings ├── listify@1.0.0 ├── xtend@4.0.1 ├── wordwrap@1.0.0 ├── archy@1.0.0 ├── minimist@1.2.0 ├── any-promise@1.3.0 ├── bluebird@3.4.0 ├── chalk@1.1.3 (supports-color@2.0.0, escape-string-regexp@1.0.5, ansi-styles@2.2.1, has-ansi@2.0.0, strip-ansi@3.0.1) ├── columnify@1.5.4 (strip-ansi@3.0.1, wcwidth@1.0.1) ├── update-notifier@0.7.0 (is-npm@1.0.0, xdg-basedir@2.0.0, semver-diff@2.1.0, ansi-align@1.0.0, boxen@0.5.1, configstore@2.0.0, latest-version@2.0.0) └── typings-core@1.0.1 (array-uniq@1.0.2, thenify@3.2.0, zip-object@0.1.0, […]

小袋鼠和原型错误

原型是没有定义,虽然在节点控制台编写http.IncomingMessage.prototype确实给一个对象作为输出。 有任何想法吗 ? var req = Object.create(http.IncomingMessage.prototype) Uncaught TypeError: Cannot read property 'prototype' of undefined at http://localhost:62625/____wallaby-bundle.js?1501265946287&wallabyFileId=bundle:219253

如何在没有Typescript / TSD定义的情况下将库导入节点?

我正在尝试使用一个名为connect-session-knex的会话助手,它足够隐晦,它没有发布的打字稿定义。 所以当我尝试编译我的脚本节点项目,我得到的错误, error TS2307 Cannot find module 'connect-session-knex' 有没有办法忽略这个模块的TS? 如何在没有TSD的情况下导入? 我知道knex有一个tsd,但包装不。 我从一个普通的观点来问,如何处理没有types定义的库。 对于任何人看:编译打字稿,当它没有tsd。 缺lesstsd。 没有tsd。

tsc不被识别为内部或外部命令

我从VSCode 0.10.6更新到0.10.8,并尝试第一次使用Typescript。 不幸的是,当我告诉VSCode构build时,出现错误: tsc不是公认的内部或外部命令… 这里是相关的细节: 我根据VS Code说明创build了一个新的“HelloWorld”项目。 这包括: 我运行了一个新的package.json npm init 我运行了npm i –save-dev typescript因为我想要本地安装,而不是全局安装。 我创build了一个launch.json来定义一个node.js项目。 我创build了具有tsc规定设置的tasks.json文件。 我做了一个settings.json文件, 如下所示 。 它没有帮助。 我确实安装了Visual Studio 2015社区,但是我没有安装任何types的Typescript扩展。 当我在开发人员命令提示符下键入“where tsc”时,它回复“无法find”。 我认为这是一件好事。 我已经重新启动VSCode(几次)。 我错过了什么? 还有什么必须做的? 更新 我尝试了@zlumer提供的解决scheme。 它成功地使打字稿编译器运行,但是却造成了数以千计的错误出现。 要解决这个问题,我还必须调整我的tsconfig.json以排除node_modules文件夹: "exclude": [ "node_modules" ]

TypeScript 0.8.2在内部模块中导入Node.js模块

好的,我可以看到你想在你的项目中使用内部模块。 那么,在TypeScript 0.8.1.1中有一个解决方法,你可以定义非导出模块(内部),并在其上面添加导入。 在0.8.2中,似乎这不起作用了。 我在这里看到的选项是完全省略导入语法,并使用节点模块的标准要求。 我不知道这是不是一个好主意,但请分享你的意见。 我知道使用导入语法将使模块外部(语言规范),但在0.8.1.1,这不是真的,错误也许? 在TypeScript 0.8.1.1中,这个工作并且在0.8.2中不起作用: import path = module('path'); import fs = module('fs'); module SomeNamespace.Controller { export class Index { … } } 我可以在其他内部模块的文件顶部使用引用语法来引用包含上面代码的文件,并且通常会调用: var ctrl = new SomeNamespace.Controller.Index; ctrl.index(); 看来在0.8.2中,这是内部模块工作的唯一方式: var path = require('path'); var fs = require('fs'); module SomeNamespace.Controller { export class Index { … } } 有没有其他的可能性混合内部模块与Node.js模块? 上面有没有什么需要使用(它编译和运行没问题…)?

TypeScript错误:保留字“this”用作名称

我试图让这个 Node.js的TypeScript定义工作,但WebStorm给了我一个错误的大列表与所有相同的消息: 保留字“this”用作名称。 此检查报告将JavaScript保留字用作名称的任何用途。 JavaScript规范保留了一些当前不用作JavaScript关键字的单词。 如果更高版本的JavaScript将它们用作关键字,那么将这些单词用作标识符可能会导致代码被破坏。 由于返回types而发生此错误的示例代码片段: 为什么不能this关键字是一个types? 我是否可能使用旧的TypeScript编译器,或者在input时出错? 编辑:为了摆脱错误,我刚刚用所包含的类或接口的typesreplace了所有这些types。 例如,给定示例中的错误通过将其更改为: export interface EventEmitter { addListener(event: string, listener: Function): EventEmitter; … } 虽然这不是解决实际问题的办法。