Tag: 打字稿

如何将共享依赖的多个打字稿文件编译成一个单独的javascript文件?

我刚刚开始学习打字稿,我很乐意能够将我的代码写在几十个文件,模块或类上。 但是,我想把所有这些编译成一个.js文件。 它可以embedded在HTML中。 这意味着我不必在每次创build一个新的HTML时在HTML中embedded个别的.js文件。 我试图找出头文件,但我找不到任何清楚的解释(或代码示例)如何工作。 这是Webstorm中的一个NodeJS项目。 我也使用JQuery,我很乐意将JQuery导入并编译到.js文件中,而不是每次都从CDN中单独检索 – 假设这会使网站运行更快!

在typescript中执行静态代码(扩展静态对象)

我想用静态函数扩展我的UserModel.model对象。 我该怎么做? 正如yu可以在下面看到的,我的UserModel.model是一个mongoose模型对象,但是我需要给这个对象添加方法,重点是:我不知道怎么写它。 我不能像Java / C#中那样使用一个静态的区域来执行静态代码,我没有find写它的方法。 你做? 例如,我想添加诸如exists() , connect()等方法 ///<reference path='../../lib/def/defLoader.d.ts'/> import model = require('./Model'); export module Models { export class UserModel extends model.Models.Model implements model.Models.IModel{ /** * Name of the model. * MUST start by uppercase letter! */ private static modelName: string = 'User'; /** * Public readable schema as object. */ public […]

如何在Express应用程序中使用DefinitetlyTyped定义

如何将Express定义中的types添加到函数中? 我有一个function,需要快速请求和快速响应作为参数,但我无法正确设置types。 我的标准JS函数看起来像这样: /// <reference path="../node.d.ts" /> /// <reference path="../express.d.ts" /> function postNewGame(req, res) { } 但是我想用Express定义的types来增强它。 应该看起来像这样: /// <reference path="../node.d.ts" /> /// <reference path="../express.d.ts" /> function postNewGame(req: Request, res: Response) { } 但是,我是什么正确的命名空间或语法才能使types工作? 上面的示例给出了这个错误Could not find symbol 'Request' 任何意见/帮助将不胜感激。 更新1 : 我应该注意到,我正在尝试这样做的文件不是app.js,我导入快速模块。 我的函数驻留在my-routes模块中,我require我的app.js,这可能是我的问题。 更新2 : 我做了一个更简单的示例应用程序来testing这个,我仍然Could not find symbol 'Request'在我的games.ts文件。 我的项目结构是这样的: .TS-定义 express.d.ts node.d.ts […]

在“module”全局variables上运行grunt-typescript时,angular-mock和node.js发生冲突

我正在使用grunt -criptcript,它正在编译我所有的* .ts文件。 我使用angular-mocks.d.ts和node.d.ts,但是我在我的实际ts文件中分别引用它们。 我只使用angular度嘲笑茉莉花testing,我在我的server.ts文件中使用节点。 我遇到的问题是,即使它们被单独引用,当它们在grunt-typescript中编译时,它似乎将它们倾倒在一起,使得它们的两个不同的“模块”定义最终冲突。 如果我使用tsc(它引用node.d.ts)自己构build我的server.ts文件,它会生成。 这两个应该永远不会重合,所以对我来说不是一个真正的冲突,除了它正在成为一个grunt-typescript,它似乎将所有* .d.ts文件转储到一起,因为它正在编译。 我认为这是因为它是一起构build我所有的* .ts文件,因此最终将* .d.ts文件一起放入一个公共空间。 我得到的错误: c:/node/bills/typings/node/node.d.ts(37,13):错误TS2134:随后的variables声明必须具有相同的types。 variables'module'必须是'(… modules:any [])=> any'types,但是这里的types是'{exports:any; require(id:string):any; id:string; 文件名:string; loaded:boolean; 父母:任何; 儿童:任何[]; }”。 angular-mocks.d.ts “模块”定义: declare var module: (…modules: any[]) => any; node.d.ts “模块”定义: declare var module: { exports: any; require(id: string): any; id: string; filename: string; loaded: boolean; parent: any; children: any[]; […]

使用express-validator typescript定义

我试图将我的一些代码转换为TypeScript,但是在express-validator定义方面存在问题 我的代码如下所示: ///<reference path='../../../d.ts/node.d.ts' /> ///<reference path='../../../d.ts/express.d.ts' /> ///<reference path='../../../d.ts/express-validator.d.ts' /> import express = require('express'); import validator = require('express-validator'); function validate(req: express.Request, res: express.Response) { req.assert('name', 'Name is required').notEmpty(); var errors = req.validationErrors(); if (errors !== null && errors.length > 0) { res.json({ result: false, errors: errors }); return false; } return true; } Typescript编译器生成以下错误: […]

如何使用Typescript / node.js从一个模块中直接使用function?

我有这个Javascript代码运行在node.js下。 我在多个模块中声明函数,并使用扩展实用程序,以便在其他模块中可用: // File: util.js: var Util = function () { this.doTask1 = function(name) { return 9; }; } module.exports = new Util(); // File: base.js: var util = require('../../Utils/util.js'); var helpers = require('../../Utils/helpers.js'); var AdminBase = function () { var self = this; this.doTask2 = function(name) { return 99; }; } module.exports = helpers.extend({}, […]

TypeScript模块命名空间,同时保留编译后的多个文件

我想利用TypeScript的名称空间/模块function,同时保留多文件输出(每个.ts文件被编译为单独的.js文件)。 我期望的组织和语法与本质量保证几乎相同: 在多个文件中的TypeScript模块命名空间 。 然而,我没有将TS编译成一个文件,而是寻找一种方法来保存原始文件结构,并让编译器注入必要的require()语句,使其在Node中工作。 例如 app.ts /// <reference path="./model/animal.ts" /> var myAnimal = new MyNamespace.Model.Animal(); 会编译成 app.js var MyNamespace = { Model: { Animal: require('./model/animal') } }; var myAnimal = new MyNamespace.Model.Animal() 或类似的

Sequelize生成错误的查询? sequelize-auto-ts和sequelize

我正在使用Typescript,NodeJS和sequelize-auto-ts来生成模型。 我想要放置一个包含find查询的两个模型给了我错误的结果,而这又是由于错误的查询被解雇了。 这里有两个模型。 rewardcodes = <types.rewardcodesModel> sequelize.define<types.rewardcodeInstance, types.rewardcodePojo>('rewardcodes', { 'rewardid': { type: 'number', primaryKey: true, autoIncrement: true }, 'code':'string', 'amount':'string' }, { timestamps: false, classMethods: { getrewardcode:(rewardcode:types.rewardcodePojo) => { var where:{[key:string]:any} = {}; if (rewardcode['rewardid'] !== undefined) { where['rewardid'] = rewardcode['rewardid']} if (rewardcode['code'] !== undefined) { where['code'] = rewardcode['code']} if (rewardcode['amount'] !== undefined) { where['amount'] […]

使用–module选项在Sublime文本中构build系统configuration

我尝试了这些构build系统configuration,但我想添加' – 模块commonjs'选项到编译器。 我试过这个,但是不行。 { "selector": "source.ts", "cmd": ["tsc.cmd","–module commonjs","$file"], "file_regex": "^(.*\\.ts?)\\s\\(([0-9]+)\\,([0-9]+)\\)\\:\\s(…*?)$" } 错误TS5023:未知的编译器选项'module commonjs'。 我得到这个错误。 这就像不认识' – '字符 提前致谢。

使用tsUnit和NodeJs应用程序

所以我发现tsUnit库,我想弄清楚如何在nodeJS项目中使用。 我发现tsunit页面上的示例项目有.html文件,但我希望能够运行unit testing。 import tsUnit = require('../tsUnit'); module CalcTest { class TryATest extends tsUnit.TestClass { test() { this.areIdentical(4,4); } } } var test = new tsUnit.Test(CalcTest); var result = test.run(); 我得到的结果是: var previousHandler = window.onhashchange; ReferenceError: window is not defined at TestRunLimiter.setRefreshOnLinksWithHash at new TestRunLimiter at new Test at Object.<anonymous> at Module._compile at Object.Module._extensions..js at […]