当前位置: 首页 > news >正文

动态网站订单怎么做整合营销传播的方法包括

动态网站订单怎么做,整合营销传播的方法包括,爱做电影网站,在建工程查询网站泛型与函数 泛型类型和函数允许创建的代码在各种类型上运行&#xff0c;而不仅支持单一类型。 泛型类和接口(Element) 类和接口可以定义为泛型&#xff0c;将参数添加到类型定义中&#xff0c;如以下示例中的类型参数Element&#xff1a; class CustomStack<Element>…

泛型与函数

泛型类型和函数允许创建的代码在各种类型上运行,而不仅支持单一类型。

泛型类和接口(Element)

类和接口可以定义为泛型,将参数添加到类型定义中,如以下示例中的类型参数Element:

class CustomStack<Element> {public push(e: Element):void {// ...}
}

要使用类型CustomStack,必须为每个类型参数指定类型实参

let s = new CustomStack<string>();

编译器在使用泛型类型和函数时会确保类型安全。

泛型约束

泛型类型的类型参数可以被限制只能取某些特定的值。例如,MyHashMap<Key, Value>这个类中的Key类型参数必须具有hash方法。
例如:

interface Hashable {hash(): number
}
class MyHashMap<Key extends Hashable, Value> {public set(k: Key, v: Value) {let h = k.hash();// ...其他代码...}
}

泛型函数(T)

使用泛型函数可编写更通用的代码。比如返回数组最后一个元素的函数:

function last<T>(x: T[]): T {return x[x.length - 1];
}// 显式设置的类型实参
last<string>(['aa', 'bb']);
last<number>([1, 2, 3]);// 隐式设置的类型实参
// 编译器根据调用参数的类型来确定类型实参
last([1, 2, 3]);

泛型默认值

泛型类型的类型参数可以设置默认值。这样可以不指定实际的类型实参,而只使用泛型类型名称。

空安全

默认情况下,ArkTS中的所有类型都是不可为空的,因此类型的值不能为空。这类似于TypeScript的严格空值检查模式(strictNullChecks),但规则更严格。

let x: number = null;    // 编译时错误
let y: string = null;    // 编译时错误
let z: number[] = null;  // 编译时错误

可以为空值的变量定义为联合类型T | null。

let x: number | null = null;
x = 1;    // ok
x = null; // ok
if (x != null) { /* do something */ }

非空断言运算符——后置!

后缀运算符!可用于断言其操作数为非空。
==应用于可空类型的值时,它的编译时类型变为非空类型。==例如,类型将从T | null更改为T:

class A {value: number = 0;
}function foo(a: A | null) {a.value;   // 编译时错误:无法访问可空值的属性a!.value;  // 编译通过,如果运行时a的值非空,可以访问到a的属性;如果运行时a的值为空,则发生运行时异常
}

空值合并运算符——??

空值合并二元运算符??用于检查左侧表达式的求值是否等于null或者undefined。如果是,则表达式的结果为右侧表达式;否则,结果为左侧表达式。

换句话说,a ?? b等价于三元运算符(a != null && a != undefined) ? a : b。

在以下示例中,getNick方法如果设置了昵称,则返回昵称;否则,返回空字符串:

class Person {// ...nick: string | null = nullgetNick(): string {return this.nick ?? '';}
}

可选链——后置?

在访问对象属性时,如果该属性是undefined或者null,可选链运算符会返回undefined。

可选链可以任意长,可以包含任意数量的?.运算符。

例子:在以下示例中,如果一个Person的实例有不为空的spouse属性,且spouse有不为空的nick属性,则输出spouse.nick。否则,输出undefined:

class Person {nick: string | null = nullspouse?: Personconstructor(nick: string) {this.nick = nick;this.spouse = undefined;}
}let p: Person = new Person('Alice');
p.spouse?.nick; // undefined

模块

程序可划分为多组编译单元或模块。

每个模块都有其自己的作用域,即,在模块中创建的任何声明(变量、函数、类等)在该模块之外都不可见,除非它们被显式导出。

与此相对,从另一个模块导出的变量、函数、类、接口等必须首先导入到模块中。

导出 ——关键字export

可以使用关键字export导出顶层的声明。?????????

未导出的声明名称被视为私有名称,只能在声明该名称的模块中使用。
注意:通过export方式导出,在导入时要加{}。

静态导入

导入声明用于导入从其他模块导出的实体,并在当前模块中提供其绑定。导入声明由两部分组成:

导入路径,用于指定导入的模块;
导入绑定,用于定义导入的模块中的可用实体集和使用形式(限定或不限定使用)。

导入绑定可以有几种形式。

假设模块具有路径“./utils”和导出实体“X”和“Y”。

导入绑定* as A表示绑定名称“A”,通过A.name可访问从导入路径指定的模块导出的所有实体:

import * as Utils from './utils'
Utils.X // 表示来自Utils的X
Utils.Y // 表示来自Utils的Y

导入绑定{ ident1, …, identN }表示将导出的实体与指定名称绑定,该名称可以用作简单名称:

import { X, Y } from './utils'
X // 表示来自utils的X
Y // 表示来自utils的Y

如果标识符列表定义了ident as alias,则实体ident将绑定在名称alias下:

import { X as Z, Y } from './utils'
Z // 表示来自Utils的X
Y // 表示来自Utils的Y
X // 编译时错误:'X'不可见

动态导入

应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入。
import()语法通常称为动态导入,是一种类似函数的表达式,用来动态导入模块。以这种方式调用,将返回一个promise。

顶层语句

顶层语句是指在模块的最外层直接编写的语句,这些语句不被包裹在任何函数、类、块级作用域中。顶层语句包括变量声明、函数声明、表达式等。

关键字

this

关键字this只能在类的实例方法中使用。
关键字this的指向:

  1. 调用实例方法的对象
  2. 正在构造的对象
http://www.mmbaike.com/news/87413.html

相关文章:

  • 电子科技网站北京seo网站设计
  • 哪些网站可以接设计的单子做哈尔滨网络优化公司有哪些
  • 广东 网站建设最新的销售平台
  • asp.net网站开发实例视频教程市场营销公司有哪些
  • 做推广可以上那些网站关键词优化排名软件推荐
  • 用ps做商城网站好做吗怎么做网站优化排名
  • 个人博客网站源码长春网站优化流程
  • 建设本地网站网站推广计划方法
  • 工业和信息网站备案管理系统天津短视频seo
  • 深圳国税局网站怎么做票种核定国外网站怎么推广
  • 59网站一起做网店普宁乐事薯片软文推广
  • 屏山移动网站建设百度小说排行榜
  • 分布式网站开发郑州网站推广报价
  • 陕煤建设集团网站推广方式有哪些
  • edu网站一般谁做的搜狗seo优化
  • 深圳php电商网站开发百度软件下载中心官方网站
  • 做单页网站容易排名吗seo试用软件
  • 建立站点的作用西安seo哪家好
  • 淘宝客怎样做网站软文发布推广平台
  • 荔湾建设网站曲靖新闻今日头条
  • ps怎样做网站首页图门户网站制作
  • 销售网站建设实验报告系统优化大师
  • 设计网站推荐大北京aso优化
  • 泰州哪里做网站北京seo代理公司
  • 减肥产品网站模板自动外链发布工具
  • 网站推广入口百度竞价优缺点
  • 云主机做网站域名打不开站长之家网站流量查询
  • 免费信息网站建设平台互联网营销的方法有哪些
  • 施工企业副总经理竞聘优化网站推广网站
  • metinfo怎么做网站怎么自己弄一个网站