Tag: 打字稿

TypeScript全局模块声明

我正在使用TypeScript开发一个NodeJS API。 我有几个.ts文件,并在他们所有的我一次又一次的导入外部模块(如肥皂,xmlParser,url,下划线等)。 有没有什么方便的方法来声明他们以某种方式全局和使用他们没有在每个.ts文件中导入它们? 谢谢,

Typescript无法findExpress模块

我正在尝试创build我的第一个NodeJS应用程序,但是我无法使其工作。 这些是我从各个博客到目前为止所遵循的步骤,并尝试在打字稿中构build第一个nodejs应用程序。 npm install -g express-generator npm install -g typescript express SampleApp npm install -g typings typings install dt~node –global typings install dt~express dt~serve-static dt~express-serve-static-core –global cd SampleApp npm install hello.ts import express = require('express'); var app = express(); 当我build立编译ts文件与TypeScript >>> tsc -m commonjs -t es5 hello.ts hello.ts(1,26): error TS2307: Cannot find module 'express'. 我经历了各种资源,找不到解决办法。 […]

使用.ts,.scss,.html复制和观看文件夹

我开始使用VS 2015与NPM和Gulp一起学习使用TypeScript的Angular2。 我有这样的文件夹结构: scripts login login.html login.scss login.ts home home.html home.scss home.ts app.ts boot.ts 我想让Gulp观察脚本文件夹,编译文件并将它们复制到另一个目录。 所以我想要这个输出: wwwroot login login.html login.css login.js home home.html home.css home.js app.js boot.js 我怎样才能做到这一点? 谢谢

如何在Typescript中的方法装饰器上创build编译错误?

我正在研究一个叫做expresskit的库,它允许你使用装饰器来定义routes / params / etc。 我正在重构中,我想我需要限制路线可以有的响应types。 举个例子,这里是如何创build路由 – export default class UserRouter { @Route('GET', '/user/:userId') public static getUser(@Param('userId') userId: number): any { return new User(); } } 路由应用于静态方法。 静态方法可以直接返回一个值或一个Promise 。 我想要求这样的承诺 – export default class UserRouter { @Route('GET', '/user/:userId') public static async getUser(@Param('userId') userId: number): Promise<User> { return Promise.resolve(new User()); } } 原因是,这些路线背后的逻辑越来越臃肿和纠结,以处理不同types的反应。 由于大多数路由可能是asynchronous的,我宁愿有更清洁的核心代码依靠asynchronous。 我的路线装饰器function看起来像这样 […]

自动将模板打字稿定义文件自动包装在模块中

我很可能在这里丢失了一些tsconfig选项。 我在做什么很简单: 我正在创build一个npm模块,例如: export class HelloWorld { constructor(public greeting: string){} } 与我的tsconfig是: { "compilerOptions": { "target": "ES5", "module": "commonjs", "removeComments": true, "noImplicitAny": false, "preserveConstEnums": true, "declaration": true, "suppressImplicitAnyIndexErrors": true, "outDir": "../js" }, "filesGlob": [ "./**/*.ts", "!./node_modules/**/*.ts" ] } 当我的声明是自动创build它看起来像这样: export declare class HelloWorld { greeting: string; constructor(greeting: string); } 但是,实际上在其他项目中安装npm包时,这样做效果不好。 当我导入包时,我必须使用: import hello = require("hello-world/js/index"); […]

Angular 2 Login指令和location.createComponent

我在我的angular度应用程序上实现一个login系统。 我在这里find了一个很好的资源。 但是在自定义的RouterOutlet指令中有一个错误,如下所示: import { ElementRef, DynamicComponentLoader, AttributeMetadata, Directive, Attribute } from '@angular/core'; import { Router, RouterOutlet, ComponentInstruction } from '@angular/router-deprecated'; import { UserService } from './user.service'; @Directive({ selector: 'router-outlet' }) export class LoggedInRouterOutlet extends RouterOutlet { publicRoutes: Array; private parentRouter: Router; private userService: UserService; constructor( _elementRef: ElementRef, _loader: DynamicComponentLoader, _parentRouter: Router, @Attribute('name') nameAttr: string, […]

移动到Angular2 RC2时TS2300:重复的标识符

所以,当从Angular2 RC1移动到RC2时,我更改了我的package.json文件,以包含更新的“ quickstart ”package.json示例中显示的所有依赖项 – 使我的package.json文件的依赖项部分如下所示: "dependencies": { "@angular/common": "2.0.0-rc.2", "@angular/compiler": "2.0.0-rc.2", "@angular/core": "2.0.0-rc.2", "@angular/http": "2.0.0-rc.2", "@angular/platform-browser": "2.0.0-rc.2", "@angular/platform-browser-dynamic": "2.0.0-rc.2", "@angular/router": "2.0.0-rc.2", "@angular/router-deprecated": "2.0.0-rc.2", "@angular/upgrade": "2.0.0-rc.2", "core-js": "^2.4.0", "bootstrap": "^3.3.6", "es6-shim": "^0.35.0", "reflect-metadata": "^0.1.3", "rxjs": "5.0.0-beta.6", "systemjs": "0.19.27", "zone.js": "^0.6.12" }, 然后,我运行npm install来获得新的热度。 这返回了无数的错误,但焊接我最终得到了似乎可能工作的东西。 当我去运行我的npm start我迎接了这个: 与types和TS有关的大量错误:各种位置的2300重复标识符错误。

用Mocha和Typescript模拟依赖关系

我有一个使用摩卡的打字稿项目。 假设我们有两个模块,如下所示。 // http.ts export class Http { } // app.ts import Http from './http'; export class App { } 我在testing应用程序时如何模拟Http模块? testing通过npm脚本执行如下。 "test": "cross-env NODE_ENV=test ./node_modules/mocha/bin/mocha", 摩卡选项(mocha.opts)如下所示。 test/setup.ts –compilers ts:ts-node/register –compilers tsx:ts-node/register ./src/**/*.spec.ts

使用Angular2 Typescript和ServerJS访问.ENV属性

我一直在通过Angular2快速入门和教程,现在我试图设置从一个活的REST Api拉数据。 我需要通过Api调用authentication参数,我正在阅读的一切,我应该把这些参数到ENVvariables。 我无法弄清楚我应该怎么做。 我已经在我的本地服务器上创build了一个.env文件,我已经使用NPM将dotenv安装到我的项目中,但是我找不到关于如何使用dotenv的示例,似乎与我使用的TypeScript导入语法至。 这是我的main.ts: import { } from 'dotenv/config'; import { bootstrap } from '@angular/platform-browser-dynamic'; import { AppComponent } from './app.component'; bootstrap(AppComponent); 和一个示例app.component.ts: import { Component } from '@angular/core'; @Component({ selector: 'my-app', template: ` <h1>Up and running!</h1> <p>Do not show this at home: {{process.env.TWITTER_CONSUMER_KEY}}</p> `, styleUrls: ['style.css'] }) export class AppComponent { } […]

在OS X上的Angular 2教程El Capitan在浏览器中返回“Can not GET /”

我正在尝试在OS X上使用TypeScript来处理Angular 2。我已经按照教程进行了编译,并且没有收到任何错误。 npm start命令成功完成,并在Safari中显示新选项卡。 地址是http://localhost:3000唯一显示的是 不能获取 / 我不熟悉Lite-Server,我不知道我是否启动了一些让教程运行的东西。 有没有我错过了或某种方式来确定Lite-Server是否正在运行?