
Angularjs&TypeScript
js
云川之下
这个作者很懒,什么都没留下…
展开
-
TypeScript extends,infer,keyof , 内置类型ReturnType,Partial,Readonly等
在 2.8 版本中,TypeScript 内置了一些与infer 有关的映射类型:官网 Utility Types文章目录infer用在函数中构造函数中内置类型ReturnTypeinferinfer 最早出现在此 PR 中,表示在 extends 条件语句中待推断的类型变量。用在函数中可以表示函数中的入参或函数的返回值。函数的入参示例如下:type ParamType<T> = T extends (param: infer P) => any ? P : T;在这个原创 2020-06-27 15:42:32 · 6869 阅读 · 0 评论 -
TypeScript 可索引的类型 [index: number]: string 语法
官网可索引的类型与使用接口描述函数类型差不多,我们也可以描述那些能够“通过索引得到”的类型,比如a[10]或ageMap["daniel"]。 可索引类型具有一个 索引签名,它描述了对象索引的类型,还有相应的索引返回值类型。 让我们看一个例子:interface StringArray { [index: number]: string; //索引签名}let myArray: StringArray;myArray = ["Bob", "Fred"];let myStr: str原创 2020-06-23 15:55:22 · 10130 阅读 · 1 评论 -
配置VSCode的TypeScript环境
环境Node.js首先需要 安装Node.js:cmd 中输入 npm -v ,查看版本D:\test1\mytest>npm -v3.10.10如果没有报错说明安装了 Node.js否则 ,从网上下载并安装!配置查看全局安装的位置,找到 .npmrc 修改即可prefix = E:\nodejs\npm_global_modules也可通过npm config ls查看配置文件的位置及内容user-agent = "npm/3.10.10 node/v6.11.原创 2020-06-22 19:47:44 · 3047 阅读 · 0 评论 -
TypeScript 泛型及应用
设计泛型的关键目的是在成员之间提供有意义的约束,这些成员可以是:类的实例成员、类的方法、函数参数和函数返回值。为了便于大家更好地理解上述的内容,我们来举个例子,在这个例子中,我们将一步步揭示泛型的作用。首先我们来定义一个通用的 identity 函数,该函数接收一个参数并直接返回它:...转载 2020-06-19 21:42:05 · 752 阅读 · 0 评论 -
TypeScript 类型检查总结
一、联合类型在 TypeScript 中,一个变量不会被限制为单一的类型。如果你希望一个变量的值,可以有多种类型,那么就可以使用 TypeScript 提供的联合类型。下面我们来举一个联合类型的例子:let stringOrBoolean: string | boolean = "Semlinker"; //只能是字符串或boolean类型interface Cat { numberOfLives: number;}interface Dog { isAGoodBoy: boolean转载 2020-06-19 20:43:42 · 1521 阅读 · 0 评论 -
const { name } = user语法解析
1、这个涉及到ES6中变量的解构赋值定义:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。解构的语法:const { zhi } = Gao; //定义变量zhi,把Gao当做对象处理,并取其属性zhi,赋值给变量zhi//等价于const zhi = Gao.zhi解构赋值的基本规则是:只要等号右边不是对象或数组,就先将其转换为对象。由于undefined和null无法转换为对象,所以对它们解构赋值都会报错。2、请分析以下几个例子转载 2020-06-19 16:47:21 · 3071 阅读 · 0 评论 -
TypeScript 数据类型——联合类型 (Union Type) 和字面量类型 (Literal Type)
联合类型联合类型表示的值可能是多种不同类型当中的某一个。比如,A | B联合类型的某个值就可能是 A 类型,也可能是 B 类型。很显然,联合类型放宽了类型的取值的范围,也就是说值的范围不再限于某个单一的数据类型。同时,它也不是无限制地放宽取值的范围,如果那样的话,完全可以使用 any代替。提示:我们在创建联合类型的时候,可以使用type关键字为自定义的联合类型加上别名,这样可以避免我们重复它们的定义,比如:type SeriesOfTypes = string | number | boolean |转载 2020-06-19 15:04:48 · 2164 阅读 · 0 评论 -
angular 4 outlet 多重路由
官网原文 《用命名出口(outlet)显示多重路由》建议本篇文章之前先阅读《angular2/4 路由参数详解》文章目录详细步骤导航菜单app.component.htmlcompose-message.component.csscompose.message.component.tscompose-message.component.htmlapp-routing.module.ts效果当用户点击“Contact”按钮时,你要在一个弹出框中显示一条消息。即使在应用中的不同页面之间切换,这个弹出框也原创 2020-06-15 17:25:28 · 1675 阅读 · 0 评论 -
angular2/4 路由参数详解
参考官网 《路由到视图》文章目录路由配置不带参数的路由配置带路径参数的路由配置?后带参数的路由配置navigateByUrl和navigate区别完整例子settings.component.tsProfileSettingsComponentpassword.settings.component.tsAppRoutingModule路由配置不带参数的路由配置假设我们定义了一个路由{ path: 'heroes', component: HeroListComponent }routerLi原创 2020-06-15 14:41:04 · 954 阅读 · 0 评论 -
Angular 4.x 路由快速入门
路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据。这允许我们通过控制不同的路由,获取不同的数据,从而渲染不同的页面。接下来我们将按照以下目录的内容,介绍 Angular 的路由。具体目录如下:目录Installing the routerBase href使用路由RouterModule.forRoot()RouterModule.forChild()Configuring a routeDisplaying routesFurther configur转载 2020-06-13 19:08:49 · 197 阅读 · 0 评论 -
angular2/4 使用[innerHTML]时样式不生效
首先默认情况下,innerHTML会被认为是不安全的,因此屏蔽掉了样式。不生效场景我们通过innerHTML引入一段html格式的文本,文本中有style样式,目标是希望字体是红色的,而实际效果却仍然是默认的黑色。TS文件import { Component, OnInit } from '@angular/core';@Component({ selector: 'app-inner-html', templateUrl: './inner-html.component.html',转载 2020-06-06 16:41:51 · 1545 阅读 · 0 评论 -
Angular 2 constructor & ngOnInit
在 Angular 2 学习过程中,相信很多初学者对 constructor 和 ngOnInit 的应用场景和区别会存在困惑,本文我们会通过实际的例子,为读者一步步解开困惑。constructor在 ES6 中就引入了类,constructor(构造函数) 是类中的特殊方法,主要用来做初始化操作,在进行类实例化操作时,会被自动调用。马上来个例子:class AppComponent { constructor(name) { console.log('Constructor initia转载 2020-06-04 10:48:02 · 314 阅读 · 0 评论 -
Angular2 ngOnChanges用法
a转载 2020-06-04 09:50:19 · 7204 阅读 · 0 评论 -
angular2 @input和@output理解
先做个比方,然后奉上代码比如:<talk-cmp [talk]="someExp" (click)="eventHandler($event)">input, [talk]="someExp" 这个标签可以理解为一个专门的监听器,监听父组件传递过来的someExp参数,并存入自身组件的talk变量;好像是开了个后门,允许且只允许父组件的someExp进入,一旦进入立刻抓进一个叫talk的牢房,然后子组件中就可以通过@Input来定义这个变量talk然后使用它。output ,(clic转载 2020-06-04 09:36:04 · 537 阅读 · 0 评论 -
chrome angular2 调试插件augury
网站地址: https://augury.rangle.io/GitHub:https://github.com/rangle/augury网站描述: Angular2专用的chrome调试插件augury是一款可以安装在谷歌浏览器上使用的Angular2专用的chrome调试插件augury安装通过谷歌应用商店安装,在商店中搜索augury,点击install即可github:登陆github,搜索augury,点击进入项目,选中release,下载其中的crx文件使用augury使用a.原创 2020-06-03 17:33:17 · 715 阅读 · 0 评论 -
angular2/4通过服务实现组件之间的通信EventEmitter
组件和组件之间的通信,使用@Output @Input,局限,如果组件嵌套层次比较深,那么就很麻烦了。注意:现在的场景是这样的,界面是由N多个组件组成的,如果一个组件中修改了接口的内容,其他组件需要调接口刷新数据,那么就用到了EventEmitter。EventEmitter可以帮助我们现实发布订阅功能。1、创建服务,new一个EventEmitter本质上是通过@Injectable()新建一个service组件import {Injectable, EventEmitter, OnInit} f转载 2020-06-03 17:17:30 · 566 阅读 · 0 评论 -
Angular2 NgModule 作用域相关问题
NgModule 是你使用 Angular 编写应用程序时遇到的第一个基本结构,但由于涉及不同的作用域范围,它也是最微妙和最复杂的。Why NgModule?我们可以使用 Angular CLI,自动完成很多工作,但我们必须要做的第一件事就是加载根模块。platformBrowserDynamic().bootstrapModule(AppModule);NgModule 的目的是声明我们在 Angular 模块中创建的内容,主要有以下两种结构:declarations - 声明模板中使用的转载 2020-06-03 13:56:29 · 322 阅读 · 0 评论 -
Angular2 知识笔记(1) 特性模块
随着应用的增长,你可能需要组织与特定应用有关的代码。 这将帮你把特性划出清晰的边界。使用特性模块,你可以把与特定的功能或特性有关的代码从其它代码中分离出来。 为应用勾勒出清晰的边界,有助于开发人员之间、小组之间的协作,有助于分离各个指令,并帮助管理根模块的大小。特性模块 vs. 根模块与核心的 Angular API 的概念相反,特性模块是最佳的组织方式。特性模块提供了聚焦于特定应用需求的一组...原创 2020-03-13 15:20:57 · 289 阅读 · 0 评论 -
angular2里forRoot的作用
模块A是这样定义的@NgModule({ providers: [AService], declarations: [ TitleComponent ], exports: [ TitleComponent ],})export class A {}如果有惰性模块lazyModule(子模块)导入模块A,那么子注入器将生成一个AService实例,也就...原创 2020-03-12 19:53:53 · 749 阅读 · 0 评论 -
firefox中angular2嵌套发送请求问题
原文项目中碰到一个问题,需要在一个异步请求A的响应中再发送一个异步请求B,chrome中一切ok,但是firefoxB总是发送失败,浏览器f12开发者模式下甚至没有看到发送的请求B。后来经过鉴定,得知,firefox异步请求中不能再发送异步请求。伪码如下: this.httpAPI.A().then( resp => { if...转载 2020-03-11 17:21:09 · 157 阅读 · 0 评论 -
angularjs2跨机器访问
通过ng serve启动本地环境,默认端口是4200本地访问 url http://localhost:4200/如果我们的ip是1.0.0.2别人通过http://1.0.0.2:4200/访问我们的环境是行不通的,需要设置host为0.0.0.0方法一设置host文件为0.0.0.0 localhost方法二直接在启动命令中设置hostng serve --ho...原创 2020-01-14 15:44:20 · 193 阅读 · 0 评论