Tag: 打字稿

如何在TypeScript中使用声明文件

当涉及到用纯Javascript编写的声明文件和第三方库时,我没有在TypeScript中获得这些东西。 假设我有以下Javascript类: $ cat SomeClass.js var SomeClass = (function () { function SomeClass() { } SomeClass.prototype.method1 = function () { return "some string"; }; return SomeClass; })(); exports.SomeClass = SomeClass; 我想获得types检查,所以我创build了这样的声明文件: $ cat test.d.ts class SomeClass { public method1(): string; } 然后我想在一些代码中使用类和声明文件: $ cat main.ts ///<reference path="./test.d.ts"/> import ns = module("./SomeClass"); function test(): string { […]

Angular2与TypeScript:声明预期编译器错误@component后

我得到这种错误,尽pipe我从angular2 / core导入组件应该是它的来源是文件不是通过npm安装下载或我的节点需要升级 这是我的文件 import {bootstrap} from 'angular2/platform/browser'; import {Component, View} from 'angular2/core'; @Component({ })

Webpack与客户端/服务器节点设置?

我正在尝试为具有节点后端服务器的Angular2应用程序设置基于webpack的stream程。 经过几个小时的抨击,我已经设法让客户快乐地build设,但我不知道如何现在整合我的服务器版本。 我的服务器使用生成器,所以必须针对ES6,它需要指向一个不同的types文件(main.d.ts而不是browser.d.ts)。 我的源代码树看起来像; / — client/ — — <all my angular2 bits> (*.ts) — server/ — — <all my node/express bits> (*.ts) — webpack.config.js — typings/ — — browser.d.ts — — main.d.ts 我想也许只是在客户端和服务器文件夹tsconfig.json会工作,但没有运气那里。 我也无法find一个方法来获取html-webpack-plugin来忽略我的服务器包,而不是将其注入到index.html中。 我目前的tsconfig和webpack在下面,但有谁成功地让webpack捆绑这样的设置? 任何指针将不胜感激。 { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "declaration": false, "removeComments": true, "noEmitHelpers": false, "emitDecoratorMetadata": […]

Angular2构build错误 – 找不到types

我有类似的问题。 当我运行npm start我得到以下错误: > tsc && concurrently "npm run tscw" "npm run lite" node_modules/@angular/common/src/directives/ng_class.d.ts(72,35): error TS2304: Cannot find name 'Set'. node_modules/@angular/common/src/facade/async.d.ts(27,33): error TS2304: Cannot find name 'Promise'. node_modules/@angular/common/src/facade/async.d.ts(28,45): error TS2304: Cannot find name 'Promise'. node_modules/@angular/common/src/facade/lang.d.ts(4,17): error TS2304: Cannot find name 'Map'. node_modules/@angular/common/src/facade/lang.d.ts(5,17): error TS2304: Cannot find name 'Set'. node_modules/@angular/common/src/facade/lang.d.ts(70,59): error TS2304: Cannot find name 'Map'. […]

Angular 2 SimpleChanges Object在第一个npm开始时抛出错误

在我的angular2应用程序中有一个组件,其中包含一个对象数组,将所选(单击)的对象传递给它的直接子组件。 这会显示更详细的数据。 我正在使用“SimpleChanges”function来观察这个子组件,如果给定的对象改变成另一个http请求来从数据库中获取相关的注释。 如果我尝试用npm构build它,我会得到一个错误,并说: app / displayEntry.component.ts(23,41):错误TS2339:types'SimpleChanges'上不存在属性'entry' 如果我只是评论这部分,启动npm,并最终把它放在那里,并保存它,没有问题了(没有错误,它的工作原理)。 我的问题是,是否有办法解决这个问题,这会导致什么麻烦,以后我不能预见,还是应该忽略它? 谢谢你的帮助 父组件: import { Component, OnInit } from '@angular/core'; import { entry } from './Objekte/entry'; import { entryService } from './entry.service' @Component({ templateUrl: 'app/Html_Templates/displayLastEntrys.template.html' }) export class displayLastEntrys implements OnInit{ public entrys : entry[]; private entryChoosen: boolean; private ChoosenEntry : entry; constructor ( private entryservice : […]

TypeScript isNan只接受一个数字

我使用WebStorm 2016.2.2,TypeScript 2.1,Node.js. 出于某种原因, isNan被声明为只接受一个数字的函数: declare function isNaN(number: number): boolean; 我试图改变它,但它看起来不影响TSC。 我仍然得到同样的错误: “string”types的参数不能分配给“number”types的参数 我的代码(简体): isNan("10"); 我该如何解决/解决方法呢? 编辑: 请注意,根据规范,isNan的参数可以是任何types: Number.isNan() 另外:我的代码被简化了。 我实际上收到一个参数,可能是一个string或一个数字,如果它是一个string,它可能是一个我想转换为数字(“10”)或一个简单的string(“你好世界”) 。 我不想通过包括我的整个代码来解决这个问题,但是由于它造成了混乱,这是我真正的代码: if (typeof expectedValue === "string" && !isNaN(expectedValue)) { expectedValue = +expectedValue; } if (typeof actualValue === "string" && !isNaN(ctualValue)) { actualValue = +actualValue; } switch (this.operator) { case Operator.equal: return actualValue == […]

找不到'core-js'的types定义文件

我正在用angular-cli构build一个angular2应用程序。 angular-in-memory-web-api未被默认安装。 所以我search了它,并在我的package.json文件中添加了这一行"angular-in-memory-web-api": "~0.1.5" 。 并没有npm install 。 现在我有这个问题。 ERROR in [default] /home/adil/Code/AngularJS.2/cli-based/mz-doc-app/node_modules/angular-in-memory-web-api/in-memory-backend.service.d.ts:1:0 Cannot find type definition file for 'core-js'. 请提出一些解决scheme? package.json { "name": "mz-doc-app", "version": "0.0.0", "license": "MIT", "angular-cli": {}, "scripts": { "start": "ng serve", "lint": "tslint \"src/**/*.ts\"", "test": "ng test", "pree2e": "webdriver-manager update", "e2e": "protractor" }, "private": true, "dependencies": { "@angular/common": "~2.1.0", "@angular/compiler": […]

ts2304找不到名字'OnInit'

我曾经通过Angular超级英雄教程。 这一切正常。 如果我closures运行NPM的cmd窗口,然后重新打开一个CMD窗口并重新发出NPM START命令,我得到两个错误 src/app/DashBoard.component.ts(12,44) TS2304 : Cannot find name 'OnInit'. src/app/hero-list.component.ts(16, 434) TS2304 : Cannot find name 'OnInit'. 我可以通过删除来解决此问题 Implements OnInit 从这两个类,运行NPM开始重新添加它们(只需在编辑器中的CTL Z)进行一些更改,保存。 该应用程序重新编译,我closures和运行。 我有4个类来实现这个function。 我研究过它们,不知道是什么让2失败 我已阅读post,参考TS2304,但这似乎是一个通用的函数/variables/符号找不到消息… 我不知道要发布什么,我很高兴发布的任何代码。 这是由模块中的错误,这取决于(hero.ts) 这里是一个以这种方式失败的类这是hero-list.component.ts文件(在演示/在线例子中的不同点,这也被命名为Heroes.component ..) import { Component } from '@angular/core'; import { Router } from '@angular/router'; import { Hero } from './hero'; import { HeroService } from […]

angular2 – 通过使用路由器的问题

首先,我是一个完整的初学者,使用nodejs,angular2和typescript编程。 基本上我开始阅读在https://angular.io/docs/ts/latest/guide/forms.html和https://angular.io/docs/ts/latest/guide/router.html#!#base-href用新的页面扩展我的应用程序。 我使用mdl在我的应用程序上使用材质组件。 angular2似乎手工重新加载和路由不同,所以我得到以下问题: 我尝试unterstand发生了什么事情,有人可以解释我在angular2中重新加载和路由之间的区别,以及我可以如何适应重新加载行为的路由处理? 更新#1: index.html的: <!doctype html> <html> <head> <meta charset="utf-8"> <title>Title</title> <script defer src="/assets/js/material.min.js"></script> <link rel="stylesheet" href="/assets/css/font-awesome.min.css"> <link rel="stylesheet" href="/assets/css/material.min.css"> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root><md-spinner></md-spinner></app-root> </body> </html> app.module.ts import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import […]

Firebase Angular 4基于节点环境进行初始化

我已经使用Angular CLI构build了我的Angular 4项目。 我正在Heroku上部署我的应用程序,为dev和生产环境创build了herokupipe道。 我有两个firebase数据库开发和生产,我希望我的angular2应用程序连接到基于herokuconfigurationvariables的firebase数据库 我search了谷歌,发现这个答案有帮助,因为@ yoni-rabinovitchbuild议在节点服务器上发送一个HTTP请求来检查应用初始化时的环境。 我是Angular 4和typescript的初学者,我需要实现的是发送一个HTTP请求,并根据响应初始化firebase模块。 app.module.ts import { environment } from '../environments/environment'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, HttpClientModule, FormsModule, ReactiveFormsModule, BrowserAnimationsModule, AngularFireModule.initializeApp(environment.firebase) ], bootstrap: [AppComponent] }) export class AppModule {} 任何帮助将不胜感激